学Python快两年了,我从一个连print都要查拼写的小白,到现在能写简单的密码检测器,回头看看,我走过的弯路可以绕地球半圈。
今天就把我犯过的三个最蠢、最基础、也最典型的错误整理出来,给刚入门的朋友当个“避坑指南”。
错误一:变量名乱打,第二天自己都看不懂
刚开始学Python的时候,我根本不知道“变量命名规范”是什么意思。每次写代码,随手打一串字母:qweasd、zxcvbn、asdfgh——反正能运行就行,管它呢。
结果第二天打开代码,看着满屏的qweasd、zxcvbn、asdfgh,完全忘了哪个是用户名、哪个是密码、哪个是分数。
我花了半小时重新调试,最后把变量名全改成了cat1、cat2、dog3。
弟弟路过看了一眼:“姐,你写的是动物园吗?”
我:“……”
后来我学到的:
变量名要能“望文生义”,比如user_name、password、score
可以用下划线连接多个单词,比如student_id
可以查一下“Python命名规范”(PEP 8),不用全背,先记住“别用qweasd”就行
错误代码示例:
python
qweasd = "陈艺馨"
zxcvbn = 11
asdfgh = True
正确写法:
python
name = "陈艺馨"
age = 11
is_student = True
错误二:缩进混用空格和Tab,报错半小时
刚学Python的时候,我知道缩进很重要,但不知道“到底多重要”。
有一次我写了一个if语句,下面缩进了一行代码,运行——报错。我检查了拼写,没错;检查了括号,没错;检查了等号,也没错。我盯着屏幕看了五分钟,差点把电脑重启。
最后弟弟走过来,看了一眼,说:“姐,你这一行前面用的是空格,下面一行用的是Tab。”
我仔细一看……还真是。
Python说:缩进必须统一,要么全是空格,要么全是Tab,不能混用。
我弟弟一个一年级小孩,居然比我先发现bug。那一刻我感觉自己的“黑客尊严”碎了一地。
后来我学到的:
在编辑器里开启“显示空格和Tab”的功能(VS Code里可以设置)
选定一种方式,全程用同一种(推荐用空格)
写代码之前先设置好编辑器的缩进规则
错误代码示例(肉眼看不出来):
python
if age >= 18:
print("你是成年人了") # 前面是空格
print("可以去考驾照") # 前面是Tab,报错!
正确写法(统一缩进):
python
if age >= 18:
print("你是成年人了")
print("可以去考驾照") # 统一用空格
错误三:忘记冒号、少括号、拼错函数名
这三个错误堪称“Python入门三件套”,我至今偶尔还会犯。
忘记冒号:if age >= 18 后面忘了写冒号,运行报错SyntaxError: invalid syntax。我盯着屏幕想了半天,最后发现是少了一个:。
少括号:print("hello" 少了一个右括号,报错SyntaxError: unexpected EOF while parsing。我检查了缩进、检查了变量名,最后发现是括号没关。
拼错函数名:把print打成prnit、input打成inpout、len打成lne。报错NameError: name 'xxx' is not defined。其实不是“未定义”,是“打错了”。
后来我学到的:
写完一行代码,先检查冒号和括号是否配对
编辑器一般会高亮提示,不要急着关掉报错信息,仔细读一下
常见函数名可以记在小本子上,或者靠编辑器的自动补全功能
错误示例:
python
if age >= 18 # 忘记冒号,报错
print("成年了"
# 上面这一行:if缺冒号,print缺右括号
正确写法:
python
if age >= 18:
print("成年了")
总结
这三个错误看起来很小,但对于新手来说,它们会消耗大量时间和信心。我后来慢慢学会:
变量名要有意义,不要考验自己的记忆力
统一缩进方式,避免空格和Tab混用
写完一行先检查冒号、括号,再运行
犯这些错误不代表你“不会编程”,而是说明你正在“成为会编程的人”的路上。
如果你也犯过类似的错误——欢迎在评论区告诉我,看看我们有没有“同款翻车”。