python编程中要注意什么_使⽤Python编程时的10个注意事项01
初始变化量
在Python⾥,⼀个表达式中的名字在它被赋值之前是没法使⽤的。这是有意⽽为的:这样能避免⼀些输⼊失误,同时也能避免默认究竟应该是什么类型的问题(0,None,””,[],?)。记住把计数器初始化为0,列表初始化为[],以此类推。
02
从第⼀列开始
确保把顶层的,未嵌套的代码放在最左边第⼀列开始。这包括在模块⽂件中未嵌套的代码,以及在交互提⽰符中未嵌套的代码。Python使⽤缩进的办法来区分嵌套的代码段,因此在你代码左边的空格意味着嵌套的代码块。除了缩进以外,空格通常是被忽略掉的。
03
缩进⼀致
python怎么读取py文件在同⼀个代码块中避免讲tab和空格混⽤来缩进,除⾮你知道运⾏你的代码的系统是怎么处理tab的。否则的话,在你的编辑器⾥看起来是tab的缩进也许Python看起来就会被视作是⼀些空格。保险起见,在每个代码块中全都是⽤tab或者全都是⽤空格来缩进;⽤多少由你决定。
04
在函数调⽤时使⽤括号
⽆论⼀个函数是否需要参数,你必须要加⼀对括号来调⽤它。即,使⽤function(),⽽不是function。Python的函数简单来说是具有特殊功能(调⽤)的对象,⽽调⽤是⽤括号来触发的。像所有的对象⼀样,他们也可以被赋值给变量,并且间接的使⽤他们:x=function:x()。
在Python的培训中,这样的错误常常在⽂件的操作中出现。通常会看到新⼿⽤file.close来关闭⼀个问题,⽽不是⽤file.close()。因为在Python中引⽤⼀个函数⽽不调⽤它是合法的,因此不使⽤括号的操作(file.close)⽆声的成功了,但是并没有关闭这个⽂件!
05
在Import时不要
使⽤表达式或路径
在系统的命令⾏⾥使⽤⽂件夹路径或者⽂件的扩展名,但不要在import语句中使⽤。即,使⽤import mod,⽽不是import mod.py,或者import dir/mod.py。
在实际情况中,这⼤概是初学者常犯的第⼆⼤错误了。因为模块会有除了.py以为的其他的后缀(例如,.pyc),强制写上某个后缀不仅是不合语法的,也没有什么意义。
和系统有关的⽬录路径的格式是从你的模块搜索路径的设置⾥来的,⽽不是import语句。你可以在⽂件名⾥使⽤点来指向包的⼦⽬录(例如,import d),但是最左边的⽬录必须得通过模块搜索路径能够到,并且没有在import中没有其他路径格式。
不正确的语句import mod.py被Python认为是要记在⼀个包,它先加载⼀个模块mod,然后试图通过在⼀个叫做mod的⽬录⾥去到叫做py的模块,最后可能什么也不到⽽报出⼀系列费解的错误信息。
06
不要在Python中写C代码
以下是给不熟悉Python的C程序员的⼀些备忘贴⼠:
在if和while中条件测试时,不⽤输⼊括号(例如,if (X==1):)。如果你喜欢的话,加上括号也⽆妨,只是在这⾥是完全多余的。
不要⽤分号来结束你的语句。从技术上讲这在Python⾥是合法的,但是这毫⽆⽤处,除⾮你要把很多语句放在同⼀⾏⾥(例如,x=1; y=2; z=3)。
不要在while循环的条件测试中嵌⼊赋值语句(例如,while ((x=next() != NULL))。在Python中,需要表达式的地⽅不能出现语句,并且赋值语句不是⼀个表达式。
07
在打开⽂件的调⽤
不使⽤模块搜索路径
当你在Python中调⽤open()来访问⼀个外部的⽂件时,Python不会使⽤模块搜索路径来定位这个⽬标⽂件。它会使⽤你提供的绝对路径,或者假定这个⽂件是在当前⼯作⽬录中。模块搜索路径仅仅为模块加载服务的。
08
不同的类型
对应的⽅法也不同
列表的⽅法是不能⽤在字符串上的,反之亦然。通常情况下,⽅法的调⽤是和数据类型有关的,但是内部函数通常在很多类型上都可以使⽤。举个例⼦来说,列表的reverse⽅法仅仅对列表有⽤,但是len函数对任何具有长度的对象都适⽤。
09
不能直接改变
不可变数据类型
记住你没法直接的改变⼀个不可变的对象(例如,元组,字符串):
T=(1,2,3)
T[2]=4 #错误
⽤切⽚,联接等构建⼀个新的对象,并根据需求将原来变量的值赋给它。因为Python会⾃动回收没有⽤的内存,因此这没有看起来那么浪费:
T=T[:2]+(4,)
#没问题了,T变成了(1, 2, 4)
10
使⽤简单的for循环
⽽不是while或range
当你要从左到右遍历⼀个有序的对象的所有元素时,⽤简单的for循环(例如,for x in seq:)相⽐于基于while-或者range-的计数循环⽽⾔会更容易写,通常运⾏起来也更快。
除⾮你⼀定需要,尽量避免在⼀个for循环⾥使⽤range:让Python来替你解决标号的问题。在下⾯的例⼦中三个循环结构都没有问题,但是第⼀个通常来说更好;在Python⾥,简单⾄上。
S="lumberjack"
for c in S:print c #最简单
for i in range(len(S)):print S[i] #太多了
i=0 #太多了
while i
i+=1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论