作为一个Python 新手,难免在学习的过程中会遇到很多编译错误,那么在这里做一个汇总,避免今后犯同样的错误,希望对大家有所帮助。
语法错误篇
1、缩进IndentationError
这是我们在复制粘贴python代码,或者是不熟悉Python代码结构的时候,常常会范的错误。
Python中要求同一逻辑的代码块需要使用同样的缩进(常用4个空格)
如:
运行后,报错
解决方法:把代码的缩进统一调整为的4个空格就好了
2.、标点符号SyntaxError
这种情况比较常见:
- 冒号错误
- 逗号错误
- 小括号缺失或不匹配
如:
修改方式:
- 简单记法是中文的都比较胖,英文的都是瘦子。
- 括号的问题,养成一种上来先把成对()写好的习惯,然后再填内容。
变量应用篇
1、命名错误
一定要记住:禁止使用Python自带的关键词来命名,比如list,dict等,这些都是不可取的,会导致类型错误的
- 建议:命名时候的使用下划线_连字符,或者theName,TheName这种首字母大写的驼峰法。
- 不建议:使用0(数字零)或者l(小写的L)来命名,否则容易引起下面的使用错误。
2.、使用错误
这里最常见的是大家会使用容易混淆的字母来命名
- 造成使用的时候出错
- 或者是使用时候完全用错了变量
编码错误篇
Python3中,我们遇到的最常见编码错误是在网络应用中,有时候我们得到的数据是bytes,但是我们实际需要str,这时候我们就需要转换编码。
- 这里我们需要注意bytes和str的转换,其中 encoding='utf-8'是默认的参数
导入模块篇
- 没有提前导入
这里经常会发生的错误是:使用某些模块的功能,但是py文件头部忘记导入
通常这种情况会出现在我们学习某些新内容中,敲完代码开始运行的时候,就会发现啥啥啥没defined,就需要去检查是不是最开始没有import的问题了。
当我们加入import json后,可得到正确结果{'name': 'de8ug', 'city': 'beijing'}
运行py文件时候报错ModuleNotFoundError: No module named 'xxx'
遇到这种情况:我们一般是运行的那个.py文件又需要导入自己定义的其他模块,
但此时系统不知道哪些模块的存在
解决办法是:在运行的第一个.py文件头部,添加如下代码:
这种情况适用于有个project项目,里面又bin,conf,app等目录
当bin里面的py文件又需要引入conf,app等目录的模块时候
需要让系统本身知道project这目录的存在,先有爷爷,然后才能有孙子啊。
函数使用篇
作用域问题
Python在函数中使用变量的时候,会按照LEGB(Local(本地),Enclosing(封闭)
Global(全局),Built-in(内置))这种作用域的顺序来查找变量
如果有赋值(给同名的变量)操作,需要确保当前作用域下已经有这个变量。
因为这时候Python认为函数内部和外部有同名的变量,会把外部的屏蔽。
改进方式:
- 直接引用外部变量,使用相应的方法
- 采用不同的变量名
类似的还有+=的时候,这时候相当于两部操作,先=后+
但,如果函数内部变量和函数外相同,就会出现类似上面的错误。
你感受一下: