Python语言初学者容易踏入的一些坑

1、不注意缩进

Python语言对缩进要求很严格,能够帮助编程者避免很多逻辑错误。建议初学者一律按照4个空格来缩进,并注意观察语句的归属层次。

下面就是一个典型的缩进不一致错误,有的缩进8个空格,有的缩进4个空格:

2、调用函数忘记加括号

Python语言中函数名称代表这个函数对象,要调用函数则必须在名称后面加括号,初学者尤其容易忘记那些不带参数的函数调用。

 
# 海归作图中done函数是结束绘制 
# 由于没有参数,很容易被写成这样 
turtle.done 
# 下面这个才是正确的 
turtle.done() 

3、用系统内置函数作为变量名

比如下面的一些语句,会使你失去系统内置的功能:

 
# set是内置集合类型,这么赋值 
# 你就再也无法用set([1,2,3,4])来创建集合了 
set = [1,2,3,4] 
# print是内置的打印输出函数,这么赋值 
# 你就再也无法打印输出了 
print = "Hello" 

4、将py文件命名为内置模块的名称

比如,为了计算一个公式的值,把源代码文件命名为math.py,内容如下:

 
import math 
print(math.sqrt(2)*2) 

运行的结果会是这样:

 
Traceback (most recent call last): 
File "/Users/chenbin/Documents/homework/math.py", line 1, in <module> 
import math 
File "/Users/chenbin/Documents/homework/math.py", line 2, in <module> 
print(math.sqrt(2)*2) 
AttributeError: module 'math' has no attribute 'sqrt' 

因为一旦用math来命名py文件,那么import math将会是import自己。将来在进行海龟作图的时候,很多同学也会犯类似错误,把py文件叫做“turtle.py”。

5、以为input函数是万能的

初学者经常会以为input函数可以随心所欲得到想要的那种类型数值,特别是整数,比如:

 
n = input("请输入年龄:") 
print("明年你就", n + 1, "岁了!") 

结果出错,因为python3中的input函数返回的是最素的……字符串,必须要套一层int()才能得到整数。

6、可变类型的连续赋初值

初学者觉得a=b=c=1这样赋初值特别cool,然后:

 
# 初始化了3个空列表,但这其实是幻觉 
# 因为它们仨指向了同一个可变类型的列表容器对象 
a=b=c=[] 
# 给a添加了一个元素 
a.append(123) 
# 其实a,b,c指向的是同一个列表 
#结果都是[123] 
print(a,b,c) 

记住,只有不可变类型的对象可以这么赋初值,或者你确实需要几个指向同一个可变对象的变量(这几乎不会出现)。

标签:
3 comments on “Python语言初学者容易踏入的一些坑
  1. 小BAI说道:

    第6个坑里的“只有不可变类型的对象可以这么赋初值”不能理解是什么意思

  2. fish说道:

    都是经典错误~~总结的很棒! 全犯过~~~

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

*

code