Python 中 SyntaxError: invalid syntax 错误解决方法总结
SyntaxError: invalid syntax 是 Python 最常见的语法错误,意思是'代码写法不符合 Python 语法规则'。编译器会在出错的那一行(或上一行)报错,并用 ^ 指向大致位置。
常见原因及解决方法(按频率排序)
| 排名 | 常见原因 | 示例(错误代码) | 正确写法 | 说明 |
|---|---|---|---|---|
| 1 | 缺少冒号 : | if a > 0 | ||
for i in range(10) | if a > 0: | |||
for i in range(10): | if、for、while、def、class、with、else 等后面必须加冒号 | |||
| 2 | 括号不匹配(() [] {}) | print("hello" | ||
list = [1, 2, 3 | print("hello") | |||
list = [1, 2, 3] | 检查所有括号是否成对 | |||
| 3 | 中英文标点混用 | if a>0:(全角大于号) | ||
print("hi") | 用半角 > 和 () | 尤其是从 Word、网页复制代码容易带全角符号 | ||
| 4 | 缩进错误(空格和 Tab 混用) | 混合使用空格和 Tab | 统一用 4 个空格(推荐) | Python 对缩进非常严格,建议编辑器显示不可见字符 |
| 5 | 在交互式环境(>>>)中直接写多行代码 | 在 Python 交互 shell 直接粘贴多行函数 | 多行代码要写在 .py 文件里,或每行回车继续 | 交互模式下多行需要手动换行缩进 |
| 6 | def 或 class 定义时括号后没冒号 | def func(x) | def func(x): | 函数/类定义必须加冒号 |
| 7 | 赋值用了 = 而不是 ==(条件判断中) | if a = 5: | if a == 5: | = 是赋值,== 是比较 |

