19个常见的python错误和异常

错误总是不可避免,尤其是在初学阶段,本文收集整理了1个常见的python错误

1. 忘记添加:

在if, elif, else, for, while, class,或者使用def定义函数的名称后面忘记添加:,就会引发 SyntaxError

if 3 > 4

print('ok')

这是一种非常明显的错误,大多数编辑器在你写代码的时候就会用红色的波浪线提示你

2. 误将 = 当做 ==

a = 4

if a = 4:

print('ok')

即便是多年编程经验的老手也会偶尔犯这种错误,写的太着急了,就少打了一个=,得到的自然也是SyntaxError

3. 错误的缩进空格数量

if 1==1:

print('1')

print('2')

这段代码将引发错误“IndentationError: unindent does not match any outer indentation level” ,一次缩进是4个空格,这一点务必要牢记

4. 错误使用range函数

lst = [1, 2, 3]

for i in range(lst):

print(lst[i])

这段代码的本意是通过索引来遍历列表,但错误的使用了range函数,引发了错误“TypeError: 'list' object cannot be interpreted as an integer”, 正确的做法如下

lst = [1, 2, 3]

for i in range(len(lst)):

print(lst[i])

5. 尝试修改字符串的内容

字符串是不可变对象,无法修改字符串里的内容,下面的代码将会引发错误“TypeError: 'str' object does not support item assignment”

s = "i like python"

s[0] = 'I'

print(s[0])

6. 尝试将非字符串数据与字符串连接

print('I have ' + 3 + " books")

上面的代码尝试将字符串与int类型数据连接在一起,由于他们类型不同,会导致错误“TypeError: must be str, not int”

7. 字符串缺少引号

print('hello world)

创建字符串可以是用一对单引号,或者一对双引号,或者一对""", 上面的代码会引发错误“SyntaxError: EOL while scanning string literal”

8. 使用未定义的变量

sname = "lilei"

print('my name is ' + name)

print语句中需要用到的变量name事先并没有被定义,就会引发错误“NameError: name 'name' is not defined”

9. 调用对象没有的方法

string = 'PYTHON'

# 经过一些操作后,string变成了None

string = None

print(string.lower())

string原本是字符串,但进过一些操作后,变成了其他对象,可能是int,或者None,不论变成什么,总是它都不再是字符串,没有了lower方法,这时你再去调用lower方法就会报错“AttributeError: 'NoneType' object has no attribute 'lower'”

10. 访问不存在的索引

lst = [1, 2, 3]

print(lst[6])

列表最大的索引是2,代码里尝试访问索引6就会引发索引错误“IndexError: list index out of range”

11. 使用一个不存在的key

需要通过key来操作字典,如果key不存在,就会引发错误“KeyError”

dic = {

'name': 'lili',

'age': 14

}

print(dic['sex'])

12. 使用保留字做变量

class = 'python'

print(class)

python的保留字不能作为变量,上面的代码会引发错误“SyntaxError”

13. 使用不存在的内置函数

lst = [1, 2, 3]

print(avg(lst))

这个错误与第8个错误相似,都是使用了一个不存在的对象

14. 在函数内修改全局不可变对象

这是一个比较复杂的错误,先来看下面的代码

a = 10

def func():

print(a)

func()

程序正常执行,可以输出10,对代码稍作修改

a = 10

def func():

print(a)

a = 20

func()

多了一行a = 20后,再次运行代码就会报错“UnboundLocalError: local variable 'a' referenced before assignment”,为什么会这样呢?a原本是一个全局变量,在第一段代码里可以正常访问,但是第二段代码里尝试对变量a进行修改,一旦有了修改这个动作,解释器就认为变量a是一个局部变量,而不在是全局变量。那么在a = 20这条语句之前尝试输出a的内容就会报错因为在执行print(a)时,局部变量a还不存在。

15. 修改range的返回值

lst = range(10)

lst[0] = 20

print(lst)

range函数创建一个整数序列,但这个序列并不是列表,而是一个迭代器,无法使用索引来进行任何操作,否则就会引发错误"TypeError: 'range' object does not support item assignment"

16. 使用 ++ 或 --操作

a = 0

a++

print(a)

很多语言都支持 ++ 操作,但很遗憾python并不支持,上面的代码会报错“SyntaxError: invalid syntax”,上面的代码可以修改成这样

a = 0

a += 1

print(a)

17. 函数调用时参数数量错误

错误1

def func(a, b):

return a + b

print(func(4))

错误2

def func(a, b):

return a + b

print(func(4, 4, 5))

函数需要两个参数,错误1里在调用函数时只提供了1个参数,错误2里提供了3个错误,都会引发TypeError,错误内容分别是“TypeError: func() missing 1 required positional argument: 'b'” 和 “TypeError: func() takes 2 positional arguments but 3 were given”

18. 缺少安装包

import requests

如果你并没有安装requests库,程序在执行时就会报错“ImportError: No module named requests”,不要慌,使用pip安装就好了

19. 文件路径错误

f = open('a.txt')

print(f.read())

如果根本不存在a.txt这个文件,那么就会报错“FileNotFoundError: [Errno 2] No such file or directory: 'a.txt'”, 打开一个不存在的文件,就会引发FileNotFoundError。这个错误,对于初学者来说来烦恼了,尤其是windows用户,他们有时候会信誓旦旦的说,这个文件存在啊!

程序是不会骗人的,它说不存在,就一定是不存在,你的文件地址一定是错了,检查一下路径里究竟用的是/ 还是 \\, 另外检查一下是不是隐藏了文件的后缀。

python缩进格式错误的是_19个常见的python错误和异常相关推荐

  1. python缩进格式错误的是_以下关于Python缩进的描述中,错误的是()

    以下关于Python缩进的描述中,错误的是() 过氧化氢催化分解反应速率常数的测定实验中,过氧化氢的初浓度是通过滴定法确定的.A:对B:错 WhichofthefollowingCANNOTbecon ...

  2. 【编码错误】新手程序员常见的编码错误

    新手程序员常见的编码错误 文章目录 前言 一.没有了解需求就开始写代码 二.不沟通交流就开始做需求 三.代码素养差 四.编码问题总结 4.0不注重代码格式 4.0.1空格 4.0.2换行 4.1随意命 ...

  3. python缩进格式错误的是_Python 中常见错误总结

    IndentationError: unexpected indent Python 中强制缩进,, IndentationError: unexpected indent 缩进错误 这类错误非常常见 ...

  4. python缩进格式错误修改病句_python缩进错误,求教。

    展开全部 import random secret=random.randint(1,100) guess=0 tries=0 print("AHOY! I'm the Dread Pira ...

  5. python缩进格式作用_缩进(Python很将就格式)

    空白在Python中是重要的.事实上行首的空白是重要的.它称为缩进.在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组. 这意味着同一层次的语句必须有相同的缩进.每一组这 ...

  6. python缩进格式作用_关于自动缩进格式问题,高手帮忙!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 就是那个技术文档的第五章,我做不出来.以下是我的cmd命令和结果. D:\>cd python D:\python>cd mysite D:\ ...

  7. python缩进的用途和使用方法_如何用Python减少循环层次和缩进的技巧

    本文实例分析了Python减少循环层次和缩进的技巧.分享给大家供大家参考,具体如下: 我们知道Python中冒号和缩进代表大括号,这样写已经可以节省很多代码行数,但是可以更优化,尽可能减少循环的层次和 ...

  8. python带格式复制excel样式和内容_使用python的xlrd,xlwt和xlutils.copy保留样式

    以下是我将作为针对xlutils 1.4.1的补丁提出的代码使用示例# coding: asciiimport xlrd, xlwt# Demonstration of copy2 patch for ...

  9. python 字典取值的时间复杂度_五道常见的Python面试题一定不要答错!

    第1题:阅读下面的代码,默读出A0,A1至An的最终值. 默读代码类的题目,相对来说是比较简单的.重点去研究列表解析,之后你就可以轻松的回答这些问题啦 第2题:如何提高python的运行效率? 1.数 ...

最新文章

  1. 0-1背包问题优化算法详解
  2. 【CKEditor】上传图片接口接收不到CKEditorFuncNum参数
  3. 使用poll实现的io多路复用服务端和客户端
  4. 扒一扒TCP协议与UDP协议
  5. 名创优品向港交所提交上市申请书
  6. matlab打开figure2,matlab figure2无法输出图形
  7. Java业务代理模式~
  8. L2-030 冰岛人 (25 分)-PAT 团体程序设计天梯赛 GPLT
  9. 安徽省计算机一级PDF,安徽省计算机一级考试试题 .pdf
  10. 全球与中国车载摄像头模块市场现状及未来发展趋势
  11. 复制粘贴之后出现问号怎么办_复制粘贴文字变乱码解决
  12. 深圳学校积分计算机,深圳积分入户初级计算机证书,居然也能积这么多分!
  13. 压力测试~一套完整的压力测试项目文档
  14. linux head
  15. 凉凉!写了个脚本,不小时锁了1W台手机。。
  16. 医美“四大发明”?一次令人上头的认知碰撞
  17. top和margin-top等的区别
  18. Java中hashcode和equals详解
  19. 计算机三级网络技术最全知识点总结一
  20. 神经网络优化算法nag_数值算法组(NAG)向Java开发库添加了新功能

热门文章

  1. CSAPP--信息的表示与处理
  2. php保存rar,php 解压rar文件
  3. JAVA发送邮件工具包_java mail 发送邮件工具包
  4. 电脑计算机d盘有用吗,d盘不见了,教您电脑d盘不见了怎么解决
  5. 砥志研思SVM(四) 序列最小最优化算法(SMO)论文翻译
  6. python 命令模式 设计模式_Python 设计模式——命令模式
  7. qtdesigner右击按钮没有 to slot_或添加“力感按钮”再升级,Apple Pencil会更“能打”?...
  8. android+放大缩小图片+有jar嘛,Android相册支持点击放大图片,滑动切换图片,手势放大缩小...
  9. c语言sleep函数_做游戏,学C语言,小球碰撞游戏,菜鸡者从黑窗口到图形化编程...
  10. curl shell 失败_linux – curl命令不在bash中通过shell脚本执行