1.忘记写冒号
在if、elif、else、for、while、class、def语句后忘记添加“:”
num = 12
if num ==12
print(num)
2.误用“=”做等值比较
“=”是给变量赋值,“”才是判断两个值是否相等;
def animal(pet):
if pet“cat”
return “mao”
if pet==“dog”
return “gou”
print(animal(“cat”))
3.变量没定义
if age>20:
print(“adult”)
print(“end”)
会导致“NameErroer:name‘age’ is not definde”
改正:
age = 20
if age>18:
print(“adult”)
print(“end”)
4.字符串与非字符串连接
错误:
num = 3
print(‘I have’ + num + ‘apples.’)
非字符串和字符串连接的时候,要将非字符串转换为字符串类型之后才能连接。
改正:
num = 3
print(‘I have’ + str(num) + ‘apples.’)
5.列表索引位置
spam =[‘cat’,‘dog’,‘mouse’]
print(spam[3])
系统这时就会提示:“list index out of range.”
可别忘了,列表元素的位置是从 0 开始的,所以第 3 个元素 “mouse” 的索引位置是 2。
改正:
spam =[‘cat’,‘dog’,‘mouse’]
print(spam[2])
6.使用自增‘++’或自减‘--’
学过 C 语言或者 Java 的人会很习惯使用i++或者i–,但在 Python 中是没有自增自减操作符的:
spam = 0
spam++
这时可以使用 “+=” 来代替 “++”
改正:
spam = 0
spam+=1
7.使用关键字命名变量
Python 3 中一共 33 个关键字:
👉False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield👈
自定义变量时,变量名不能和这些关键字重复。
8.索引元素位置时忘记调用len方法
通过索引位置来获取列表元素时,忘记要先使用 len 函数来获取列表的长度:
animal =[‘dog’,‘cat’,‘mouse’]
for i in range(animal):
print(animal[i])
改正:
animal =[‘dog’,‘cat’,‘mouse’]
for i in range(len(animal)):
print(animal[i])
9.函数中的局部变量赋值前被使用:
num = 42
def myFunction():
print(num)
num = 100
myFunciton()
第一行定义了一个全局变量 num ➡️函数 myFunction( )也定义了一个同名的局部变量➡️程序执行时是先查找局部变量的➡️在函数中找到 num 之后就不到外部查找了➡️此时就会出现 print 的时候变量 num 还没赋值的错误。
10.缩进问题
和其他语言的语法最大的不同就是,Python 不能用括号来表示语句块,也不能用开始或结束标志符来表示,而是靠缩进来区分代码块的。
常见的错误用法:
(1)第一种
print(‘hello’)
print('world!')
错误是第二行的缩进会导致两个print语句是包含和被包含的关系,但他们两者是属于同一个代码块的,所以应该写成:
print(‘hello’)
print(‘world!’)
(2)第二种
num = 12
if num ==12:
print('hello')
print("world!')
错误是第三行的缩进,改正的方法有两种。
一是如果两个 print 语句是属于同一代码块的,应该改正为
num = 12
if num ==12:
print('hello')
print("world!')
二是如果第三行的 print 语句是和 if 语句是同一级的,则改正为:
num = 12
if num ==12:
print('hello')
print("world!’)
(3)第三种
在Python 3 中,缩进的时候,不能 Tab 和空格混用,每个缩进层次应该选择只使用 Tab 或者只使用空格。