您现在的位置是:亿华云 > 数据库

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

亿华云2025-10-04 03:04:20【数据库】5人已围观

简介初学Python常见错误忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的错误 不同数据类型的拼接 索

初学Python常见错误

忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的初学常见错误处错误 不同数据类型的拼接 索引位置问题 使用字典中不存在的键 忘了括号 漏传参数 缺失依赖库 使用了python中对关键词 编码问题

1. 忘记写冒号

在 if、elif、异常遇else、初学常见错误处for、异常遇while、初学常见错误处def语句后面忘记添加 :age = 42if age == 42 print(Hello!)

age =  42  if age ==  42       print ( Hello! )     File "<ipython-input-19-4303141d6f97>" ,异常遇 line  2       if age == 42               ^  SyntaxError : invalid syntax 

2. 误用 =

= 是赋值操作,而判断两个值是初学常见错误处否相等是 ==

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 indent  num = 25  if num == 25:        print(Hello!)      File "<ipython-input-21-8e4debcdf119>", line 3      print(Hello!)         ^  IndentationError: expected an indented block 

4. 变量没有定义

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 "<ipython-input-46-47f8b985b82d>", line 1     if 5>3:            ^  SyntaxError: invalid character in identifier  if 5>3:       print(5比3大)     File "<ipython-input-47-4b1df4694a8d>", line 2      print(5比3大)                   ^  SyntaxError: invalid character in identifier  spam = [1, 2,3]      File "<ipython-input-45-47a5de07f212>",初学常见错误处 line 1      spam = [1, 2,3]                   ^  SyntaxError: invalid character in identifier  if 5>3:       print(5比3大‘)     File "<ipython-input-48-ae599f12badb>",异常遇 line 2      print(5比3大‘)                 ^  SyntaxError: EOL while scanning string literal 

6. 不同数据类型的拼接

字符串/列表/元组 支持拼接

字典/集合不支持拼接

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 <module>          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

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. 忘了括号

当函数中传入的异常遇是函数或者方法时,容易漏写括号

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+zdiyadd(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等

try = 5print(try)  File " <ipython-input-1-508e87fe2ff3>", line 1  try = 5  ^  SyntaxError: invalid syntax  def = 6  print(6)  File "<ipython-input-2-d04205303265>", 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: }  

很赞哦!(8)