Python 入门笔记:新手常踩的五个小坑
【摘要】 刚学 Python 时,语法看着简单,但有几处特别容易踩坑。下面记下五个新手最常遇到的问题。一、不要用可变对象做默认参数def add(item, lst=[]) 这样写时,lst 只在函数定义时创建一次,之后每次调用都会共用同一个列表,数据会越积越多。正确做法是把默认值写成 None,在函数里再新建列表。二、循环里不要直接删除列表元素在 for 循环里用 lst.remove(x) 删除元...
刚学 Python 时,语法看着简单,但有几处特别容易踩坑。下面记下五个新手最常遇到的问题。
一、不要用可变对象做默认参数
def add(item, lst=[]) 这样写时,lst 只在函数定义时创建一次,之后每次调用都会共用同一个列表,数据会越积越多。正确做法是把默认值写成 None,在函数里再新建列表。
二、循环里不要直接删除列表元素
在 for 循环里用 lst.remove(x) 删除元素会跳过后面的元素,因为删除后索引会错位。稳妥的做法是先收集要删除的元素再统一处理,或者用列表推导式生成一个新列表。
三、分清 / 和 //
Python 3 里 5 / 2 的结果是 2.5,想要整数结果要用 5 // 2。写分页、取整的代码时分清两者,能少很多 bug。
四、异常不要只捕获不处理
try/except 里写个 pass 就把异常吞掉,程序不报错,但问题被藏了起来。至少要把异常信息打印出来,或者记到日志里。
五、注意变量作用域
在函数里给全局变量赋值,要先声明 global,否则会新建一个同名局部变量。能用参数和返回值解决时,尽量少用全局变量。
小结:这些坑都不难,但第一次遇到往往要花不少时间排查。写代码时多留意默认值、循环删除、除法、异常和作用域,入门阶段会顺畅很多。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)