基础语法常见错误与调试

文章顶部广告位
728×90 或 336×280

一、引言

在学习过程中会遇到各种错误,本章介绍常见错误和调试方法!不要怕,错误是学习的好机会!

💡 不要怕报错!错误信息是来帮你的!

二、错误类型详解(常见的8种)

2.1 SyntaxError:语法错误

# ❌ 错误示例
if True
    print("错了")  # 少了冒号

# ❌ 错误示例
print("hello'  # 引号不匹配

# ❌ 错误示例
a = 10 +  # 表达式不完整

# ✅ 正确
if True:
    print("对了")

2.2 IndentationError:缩进错误

# ❌ 错误示例:没有缩进
if True:
print("错了")

# ❌ 错误示例:缩进不对
if True:
    print("a")
  print("b")

# ✅ 正确
if True:
    print("a")
    print("b")

2.3 NameError:变量名错误

# ❌ 错误示例:变量没定义
print(name)  # name 还没定义过

# ❌ 错误示例:拼写错误
name = "小明"
print(nane)  # 拼错了

# ✅ 正确
name = "小明"
print(name)

2.4 TypeError:类型错误

# ❌ 错误示例:类型不匹配
age = "18"
print(age + 1)  # 字符串不能和数字相加

# ❌ 错误示例:函数参数不对
len(123)  # len() 不能处理数字

# ✅ 正确
age = int("18")
print(age + 1)

2.5 ValueError:值错误

# ❌ 错误示例:转换失败
int("abc")  # 不能把 abc 转成整数

# ❌ 错误示例
int("12.34")  # 这样也不行

# ✅ 正确
float("12.34")  # 可以转成浮点数

2.6 IndexError:索引错误

# ❌ 错误示例:索引越界
list = [1, 2, 3]
print(list[10])  # 一共只有 3 个元素,索引 0-2

# ✅ 正确
print(list[0])  # 1

2.7 KeyError:键错误(字典)

# ❌ 错误示例
dict = {"name": "小明"}
print(dict["age"])  # 没有 age 这个键

# ✅ 正确
print(dict.get("age", "没有"))  # 安全访问

2.8 AttributeError:属性错误

# ❌ 错误示例
number = 123
number.upper()  # 数字没有 upper() 方法

# ✅ 正确
text = "hello"
text.upper()  # 字符串才有

三、错误信息怎么看?(重要!)

Traceback (most recent call last):
  File "test.py", line 5, in <module>  # ← 错误文件和行号
    print(nane)
NameError: name 'nane' is not defined  # ← 错误类型和原因

步骤:

  1. 看最后一行:错误类型和原因
  2. 看倒数第二行:错误在哪一行
  3. 看 Traceback:从哪里开始出错

四、调试技巧(程序员必备!)

4.1 用 print() 调试

# 想要知道变量的值
a = 10
b = 20
print(f"a = {a}")
print(f"b = {b}")
result = a + b
print(f"result = {result}")

4.2 分步测试

# 不要一下子写太多,写一点测一点
x = int(input("请输入 x:"))
print(f"x = {x}")

y = int(input("请输入 y:"))
print(f"y = {y}")

z = x + y
print(f"z = {z}")

4.3 注释掉部分代码

# 不知道哪里错了?先注释掉后面的
a = 10
# b = 20
# c = a + b
print(a)

五、常见错误案例

案例 1:忘记加冒号

# ❌ 错误
if a > b
    print("大")

# ✅ 正确
if a > b:
    print("大")

案例 2:赋值用了 = 而不是 ==

# ❌ 错误
if a = 10:
    print("对的")

# ✅ 正确
if a == 10:
    print("对的")

案例 3:字符串拼接数字

# ❌ 错误
age = 18
print("我" + age + "岁")

# ✅ 正确
print(f"我{age}岁")
print("我" + str(age) + "岁")

案例 4:缩进混用

# ❌ 错误
if True:
    print("a")
\tprint("b")  # 一会空格一会 Tab

# ✅ 正确(全部用 4 个空格)
if True:
    print("a")
    print("b")

案例 5:input() 忘记转类型

# ❌ 错误
age = input("年龄:")
print(age + 1)  # 报错!

# ✅ 正确
age = int(input("年龄:"))
print(age + 1)

六、使用 try-except 处理错误

# 让程序不会轻易崩溃
try:
    age = int(input("请输入年龄:"))
    print(f"你{age}岁")
except ValueError:
    print("请输入数字!")

更完善的例子

while True:
    try:
        age = int(input("请输入年龄:"))
        break
    except ValueError:
        print("请输入数字,再试一次!")

print(f"你的年龄是:{age}")

七、VS Code 调试工具

# 1. 在 VS Code 左侧调试图标
# 2. 在代码行号左侧点击(设置断点)
# 3. 按 F5 开始调试
# 4. 查看变量值

八、课后练习题

# 练习 1:找出下面代码的错误并修正
#   a = 10
#   if a > 5
#       print('大于')

# 练习 2:找出错误并修正
#   name = input('姓名')
#   print('你好' + name + 18)

# 练习 3:写一个程序,输入数字,如果输入错误提示重新输入

总结

通过本章学习,你应该已经掌握了「基础语法常见错误与调试」的相关知识。

遇到错误不要怕,认真看错误信息,一行一行找!恭喜你完成模块 2!

文章中间广告位
600×300 或 300×250
← 上一篇 下一篇 →
文章底部广告位
728×90 或 300×250