专栏名称: 志军
分享Python相关技术干货,偶尔扯扯其它的
目录
相关文章推荐
Python爱好者社区  ·  很严重了,大家别轻易离职 ·  23 小时前  
百职帮  ·  高考结束别躺平!这个暑假学Python,开学 ... ·  18 小时前  
百职帮  ·  高考结束别躺平!这个暑假学Python,开学 ... ·  18 小时前  
Python爱好者社区  ·  务必立即拿下软考证(政策红利) ·  3 天前  
Python爱好者社区  ·  软考,yyds ·  2 天前  
Python爱好者社区  ·  Science披露:近3年,垃圾论文激增,9 ... ·  3 天前  
51好读  ›  专栏  ›  志军

那些年,写 Python 犯过的错误

志军  · 公众号  · Python  · 2017-03-16 18:08

正文

请到「今天看啥」查看全文


spam == 42 :
print( 'Hello!' )

导致:IndentationError: expected an indented block,“:” 后面要使用缩进

3、变量没有定义

if spam == 42:
   print('Hello!')

导致:NameError: name ‘spam’ is not defined

4、获取列表元素索引位置忘记调用 len 方法

通过索引位置获取元素的时候,忘记使用 len 函数获取列表的长度。

spam = ['cat', 'dog', 'mouse']
for i in range(spam):
    print(spam[i])

导致:TypeError: range() integer end argument expected, got list.
正确的做法是:

spam = ['cat', 'dog', 'mouse']
for i in range(len(spam)):
   print(spam[i])

当然,更 Pythonic 的写法是用 enumerate

spam = ['cat', 'dog', 'mouse']
for i, item in enumerate(spam):
   print(i, item)

5、修改字符串

字符串一个序列对象,支持用索引获取元素,但它和列表对象不同,字符串是不可变对象,不支持修改。

spam = 'I have a pet cat.'
spam[13] = 'r'
print(spam)

导致:TypeError: ‘str’ object does not support item assignment
正确地做法应该是:







请到「今天看啥」查看全文