您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

初学Python常见异常错误,总有一处你会遇到!

来源:网络整理 浏览:290次 时间:2020-04-02
初学Python常见错误
  1. 忘记写冒号
  2. 误用=
  3. 错误 缩紧
  4. 变量没有定义
  5. 中英文输入法导致的错误
  6. 不同数据类型的拼接
  7. 索引位置问题
  8. 使用字典中不存在的键
  9. 忘了括号
  10. 漏传参数
  11. 缺失依赖库
  12. 使用了python中对关键词
  13. 编码问题
1. 忘记写冒号

在 if、elif、else、for、while、def语句后面忘记添加 :

age = 42if age == 42    print('Hello!')  File "<ipython-input-19-4303141d6f97>", line 2    if age == 42                ^SyntaxError: invalid syntax
2. 误用 =
'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''=` 是赋值操作,而判断两个值是否相等是 `==gender = '男'if gender = '男':    print('Man')  File "<ipython-input-20-191d01f95984>", line 2    if gender = '男':              ^SyntaxError: invalid syntax
3. 错误的缩进

Python用缩进区分代码块,常见的错误用法:

print('Hello!') print('Howdy!')  File "<ipython-input-9-784bdb6e1df5>", line 2    print('Howdy!')    ^IndentationError: unexpected indentnum = 25if num == 25:print('Hello!')  File "<ipython-input-21-8e4debcdf119>", 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)<ipython-input-22-a81fd2e7a0fd> in <module>----> 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 "<ipython-input-46-47f8b985b82d>", line 1    if 5>3:          ^SyntaxError: invalid character in identifierif 5>3:    print('5比3大')  File "<ipython-input-47-4b1df4694a8d>", line 2    print('5比3大')                ^SyntaxError: invalid character in identifierspam = [1, 2,3]  File "<ipython-input-45-47a5de07f212>", line 1    spam = [1, 2,3]                 ^SyntaxError: invalid character in identifierif 5>3:    print('5比3大‘)  File "<ipython-input-48-ae599f12badb>", 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)<ipython-input-29-20c7c89a2ec6> in <module>----> 1 'I have ' + 12 + ' eggs.'TypeError: can only concatenate str (not "int") to str['a', 'b', 'c']+'def'---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)<ipython-input-31-0e8919333d6b> in <module>----> 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)<ipython-input-33-90742621216d> in <module>----> 1 ('a', 'b', 'c')+['a', 'b', 'c']TypeError: can only concatenate tuple (not "list") to tupleset(['a', 'b', 'c'])+set(['d', 'e'])---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)<ipython-input-35-ddf5fb1e6c8c> in <module>----> 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)<ipython-input-36-1b1456844331> in <module>      2 grades2 = {'David':88, 'Unique':89}      3 ----> 4 grades1+grades2TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
7. 索引位置问题
spam = ['cat', 'dog', 'mouse']print(spam[5])---------------------------------------------------------------------------IndexError                                Traceback (most recent call last)<ipython-input-38-e0a79346266d> in <module>      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)<ipython-input-39-92c9b44ff034> in <module>      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 "<ipython-input-43-100a51a7b630>", line 5    print(spam.get('zebra')                           ^SyntaxError: unexpected EOF while parsing
10. 漏传参数
def diyadd(x, y, z):    return x+y+zdiyadd(1, 2)---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)<ipython-input-44-7184f3f906ca> in <module>      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 = 5print(try)  File "<ipython-input-1-508e87fe2ff3>", line 1    try = 5        ^SyntaxError: invalid syntaxdef = 6print(6)  File "<ipython-input-2-d04205303265>", line 1    def = 6        ^SyntaxError: invalid syntax
13. 文件编码问题
import pandas as pddf = 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 chardetbinary_data = open('data/twitter情感分析数据集.csv', 'rb').read()chardet.detect(binary_data){'encoding': 'Windows-1252', 'confidence': 0.7291192008535122, 'language': ''

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com