初学Python常见异常错误,总有一处你会遇到!
初学Python常见错误
- 忘记写冒号
- 误用=
- 错误 缩紧
- 变量没有定义
- 中英文输入法导致的错误
- 不同数据类型的拼接
- 索引位置问题
- 使用字典中不存在的键
- 忘了括号
- 漏传参数
- 缺失依赖库
- 使用了python中对关键词
- 编码问题
1. 忘记写冒号
在 if、elif、else、for、while、def语句后面忘记添加 :
成都创新互联公司服务项目包括云城网站建设、云城网站制作、云城网页制作以及云城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,云城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到云城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
age = 42
if age == 42
print('Hello!')
File "", line 2
if age == 42
^
SyntaxError: invalid syntax
2. 误用 =
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
=` 是赋值操作,而判断两个值是否相等是 `==
gender = '男'
if gender = '男':
print('Man')
File "", line 2
if gender = '男':
^
SyntaxError: invalid syntax
3. 错误的缩进
Python用缩进区分代码块,常见的错误用法:
print('Hello!')
print('Howdy!')
File "", line 2
print('Howdy!')
^
IndentationError: unexpected indent
num = 25
if num == 25:
print('Hello!')
File "", line 3
print('Hello!')
^
IndentationError: expected an indented block
4. 变量没有定义
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
if city in ['New York', 'Bei Jing', 'Tokyo']:
print('This is a mega city')
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in
----> 1 if city in ['New York', 'Bei Jing', 'Tokyo']:
2 print('This is a mega city')
NameError: name 'city' is not defined
5. 中英文输入法导致的错误
- 英文冒号
- 英文括号
- 英文逗号
- 英文单双引号
if 5>3:
print('5比3大')
File "", line 1
if 5>3:
^
SyntaxError: invalid character in identifier
if 5>3:
print('5比3大')
File "", line 2
print('5比3大')
^
SyntaxError: invalid character in identifier
spam = [1, 2,3]
File "", line 1
spam = [1, 2,3]
^
SyntaxError: invalid character in identifier
if 5>3:
print('5比3大‘)
File "", line 2
print('5比3大‘)
^
SyntaxError: EOL while scanning string literal
6. 不同数据类型的拼接
字符串/列表/元组支持拼接
字典/集合不支持拼接
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
'I have ' + 12 + ' eggs.'
#'I have {} eggs.'.format(12)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 'I have ' + 12 + ' eggs.'
TypeError: can only concatenate str (not "int") to str
['a', 'b', 'c']+'def'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 ['a', 'b', 'c']+'def'
TypeError: can only concatenate list (not "str") to list
('a', 'b', 'c')+['a', 'b', 'c']
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 ('a', 'b', 'c')+['a', 'b', 'c']
TypeError: can only concatenate tuple (not "list") to tuple
set(['a', 'b', 'c'])+set(['d', 'e'])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 set(['a', 'b', 'c'])+set(['d', 'e'])
TypeError: unsupported operand type(s) for +: 'set' and 'set'
grades1 = {'Mary':99, 'Henry':77}
grades2 = {'David':88, 'Unique':89}
grades1+grades2
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
2 grades2 = {'David':88, 'Unique':89}
3
----> 4 grades1+grades2
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
7. 索引位置问题
spam = ['cat', 'dog', 'mouse']
print(spam[5])
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
in
1 spam = ['cat', 'dog', 'mouse']
----> 2 print(spam[5])
IndexError: list index out of range
8. 使用字典中不存在的键
在字典对象中访问 key 可以使用 []
,
但是如果该 key 不存在,就会导致:KeyError: 'zebra'
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
spam = {'cat': 'Zophie',
'dog': 'Basil',
'mouse': 'Whiskers'}
print(spam['zebra'])
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in
3 'mouse': 'Whiskers'}
4
----> 5 print(spam['zebra'])
KeyError: 'zebra'
为了避免这种情况,可以使用 get 方法
spam = {'cat': 'Zophie',
'dog': 'Basil',
'mouse': 'Whiskers'}
print(spam.get('zebra'))
None
key 不存在时,get 默认返回 None
9. 忘了括号
当函数中传入的是函数或者方法时,容易漏写括号
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
spam = {'cat': 'Zophie',
'dog': 'Basil',
'mouse': 'Whiskers'}
print(spam.get('zebra')
File "", line 5
print(spam.get('zebra')
^
SyntaxError: unexpected EOF while parsing
10. 漏传参数
def diyadd(x, y, z):
return x+y+z
diyadd(1, 2)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
2 return x+y+z
3
----> 4 diyadd(1, 2)
TypeError: diyadd() missing 1 required positional argument: 'z'
11. 缺失依赖库
电脑中没有相关的库
12. 使用了python中的关键词
如try、except、def、class、object、None、True、False等
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
try = 5
print(try)
File "", line 1
try = 5
^
SyntaxError: invalid syntax
def = 6
print(6)
File "", line 1
def = 6
^
SyntaxError: invalid syntax
13. 文件编码问题
import pandas as pd
df = pd.read_csv('data/twitter情感分析数据集.csv')
df.head()
尝试encoding编码参数传入utf-8、gbk
df = pd.read_csv('data/twitter情感分析数据集.csv', encoding='utf-8')
df.head()
都报错说明编码不是utf-8和gbk,而是不常见都编码,这里我们需要传入正确都encoding,才能让程序运行。
python有个chardet库,专门用来侦测编码。
import chardet
binary_data = open('data/twitter情感分析数据集.csv', 'rb').read()
chardet.detect(binary_data)
{'encoding': 'Windows-1252', 'confidence': 0.7291192008535122, 'language': ''
分享名称:初学Python常见异常错误,总有一处你会遇到!
文章源于:http://ybzwz.com/article/iioohg.html