python初学必读常见报错和警告及其解决方案(篇二)

一、ImportError

ImportError是导入错误,是在用from时的报错

范例:

from math import cail

报错:

Traceback (most recent call last):
  File "C:\Users\LENOVO\Desktop\报错.py", line 1, in 
    from math import cail
ImportError: cannot import name 'cail' from 'math' (unknown location)

解决方法:

更改成这个库所拥有的函数,变量或类。

如果你不知道正确的拼写是什么,可以用dir("math")(math是你所导入的库)来找到它成员的正确拼写:

import math
print(dir(math))

输出:

所以要改成:

from math import ceil

 二、IndentionError

IndentionError就是缩进错误。

范例:

a = input("一个数")
if a>0:
print("a>0")

 报错:

  File "C:\Users\LENOVO\Desktop\报错.py", line 3
    print("a>0")
    ^
IndentationError: expected an indented block

或者:

a = int(input("一个数:"))
if a>0:
    print("a>0")
        print("a>0")

报错:

  File "C:\Users\LENOVO\Desktop\报错.py", line 4
    print("a>0")
IndentationError: unexpected indent

解决方法:

找到报错的行数,改一下缩进就可以了。

a = int(input("一个数:"))
if a>0:
    print("a>0")

a = int(input("一个数:"))
if a>0:
    print("a>0")
    print("a>0")

三、IndexError

IndexError是索引越界所导致的错误,说明一个列表或元组中,你调用了没有的索引。

范例:

li = [1, 2, 3, 4, 5]
for i in range(1, 6):
    print(li[i])

报错:

C:\Users\LENOVO\AppData\Local\Programs\Python\Python39\python.exe C:/Users/LENOVO/Desktop/报错.py
2
3
4
5
Traceback (most recent call last):
  File "C:\Users\LENOVO\Desktop\报错.py", line 3, in 
    print(li[i])
IndexError: list index out of range

解决方法:

更改索引调用,而且,列表中的索引是从0开始的:

li = [1, 2, 3, 4, 5]
for i in range(0, 5):
    print(li[i])

四、IsADirectoryError

IsADirectoryError是在路径为文件夹,但您却对它使用了文件的方法引发的错误。

范例:

from os import *
mkdir("C:/Users/LENOVO/Desktop/1.docx")
remove("C:/Users/LENOVO/Desktop/1.docx")

报错:

Traceback (most recent call last):
  File "C:\Users\LENOVO\Desktop\报错.py", line 3, in 
    remove("C:/Users/LENOVO/Desktop/1.docx")
IsADirectoryError: [Ermo 21] Is a directory

解决方法1:

在使用remove,open等只对文件有效的命令时,先判断是否为文件在使用命令(这里要注意,名字以.docx结尾也有可能是文件夹哦!):

from os import *
mkdir("C:/Users/LENOVO/Desktop/1.docx")
if path.isfile("C:/Users/LENOVO/Desktop/1.docx"):
    remove("C:/Users/LENOVO/Desktop/1.docx")

解决方法2:

更改语法:

from os import remove
open("C:/Users/LENOVO/Desktop/1.docx", "a")  # 应该用open创建文件
remove("C:/Users/LENOVO/Desktop/1.docx")

五、NotADirectoryError

NotADirectoryError与上面一个IsADirectoryError相反,是在路径为文件,但您却用了文件夹的方法。

范例:

from os import rmdir
open("C:/Users/LENOVO/Desktop/1.docx", "a")
rmdir("C:/Users/LENOVO/Desktop/1.docx")

报错:

Traceback (most recent call last):
  File "C:\Users\LENOVO\Desktop\报错.py", line 3, in 
    rmdir("C:/Users/LENOVO/Desktop/1.docx")
NotADirectoryError: [WinError 267] 目录名称无效。: 'C:/Users/LENOVO/Desktop/1.docx'

这篇文章到此结束了,如果大家想要了解更多常见报错,可以关注我,我以后会陆续出更多常见报错和解决方法,当然,也可以在“报错”专栏里转到别的报错解决方法文章。如果大家觉得这片文章对您有用,可以点赞并收藏,蟹蟹!

您可以查看我的上一篇初学必读常见报错和警告及其解决方案,链接:https://blog.csdn.net/Robin_Shiruming/article/details/126651160?spm=1001.2014.3001.5502

你可能感兴趣的:(报错,python)