好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python新手们容易犯的几个错误总结

python语言里面有一些小的坑,特别容易弄混弄错,初学者若不注意的话,很容易坑进去,下面我给大家深入解析一些这几个坑,希望对初学者有所帮助,需要的朋友可以参考学习,下面来一起看看吧。

i=0
mylist=[1,2,3,4,5,6]
while i <len(mylist):
 print(mylist[i])
 ++i 
print(+1)
>>>1
print(++1)
>>>1
print(+++1)
>>>1 
a='Hi'
b='Hi'
print(a is b)
>>>True
print(a==b)
>>>True #看起来is和==好像是一样的 
str1='Wo shi yi ge chi huo'
str2='Wo shi yi ge chi huo'
print(str1 is str2)
>>>False#is的结果是False
print(str1==str2)
>>>True #==的 
结果为True,看二者不一样了吧
str3='string'
str4=''.join(['s','t','r','i','n','g'])
print(str3)
>>>string
print(str3 is str4)
>>>False #is的结果是False
print(str3==str4)
>>>True #==的 
结果为True,看二者不一样了吧
str1,str2,str3='test','string','connection'
print(str1+str2+str3)
>>>test string connection 
str1,str2,str3='test ','string ','connection'
print(''.join([str1,str2,str3]))
>>>test string connection 
for i in range(3):
 print('Loop %d'%i)
else:
 print('Else block')
>>>Loop 0
>>>Loop 1
>>>Loop 2
>>>Else block 

这种else 块会在整个循环执行完之后 立刻运行 。既然如此,那它为什么叫做else 呢?为什么不叫and ?在if/else 语句中,else 的意思是:如果不执行前面那个if 块,那就执行else 块。

同理try/except/else 也是如此,该结构的else 的含义是:如果前面的try 块没有失败,那就执行else 块。

try/finally 同样非常直观,这里的finally 的意思是:执行过前面的try 块之后,不管如何总是执行finally块。

问题来了对于刚接触Python 的程序员可能会把for/else 结构中的else 块理解为: 如果循环没有正常执行完,那就执行else 块 。

实际上刚好相反—— 在循环里用break语句提前跳出,会导致程序不执行else 块 ,这一点会有点绕.对于不熟悉for/else 的人来说,会令阅读代码的人感到相当费解.

总结

以上就是Python新手们容易犯的几个错误总结的详细内容,更多请关注Gxl网其它相关文章!

查看更多关于Python新手们容易犯的几个错误总结的详细内容...

  阅读:40次