Python注释、命名与调试学习笔记
📝 注释(Comments)
🔧 注释的基本用法
# 单行注释:计算小时流逝的百分比
percentage = (minute * 100) / 60
# 行尾注释
percentage = (minute * 100) / 60 # 计算小时流逝的百分比
💡 注释的核心价值
-
解释代码意图:说明"为什么"这样做,而不是"做什么"
-
临时禁用代码:用
#注释掉不需要执行的代码 -
提高可维护性:
"今天写的代码,只有我和上帝知道。如果没有注释,明天可能只有上帝知道了。"
⚠️ 注释的最佳实践
| 好注释 | 坏注释 |
|---|---|
v = 5 # 速度(米/秒) | v = 5 # 把5赋值给v |
| 提供代码中不明显的信息 | 简单重复代码行为 |
| 解释复杂逻辑或算法 | 过于冗长,干扰阅读 |
🎯 使用场景
# 场景1:解释复杂逻辑
# 使用二分查找算法在有序数组中定位目标值
# 时间复杂度:O(log n)
def binary_search(arr, target):
# ...
# 场景2:临时禁用代码
# print("调试信息:当前值 =", value) # 暂时关闭调试输出
# 场景3:标记待办事项
# TODO: 添加错误处理机制
# FIXME: 这里可能存在数组越界风险
🔤 变量命名:助记变量名
🤔 什么是助记变量名?
-
助记:意为"记忆辅助工具"
-
目的:帮助记忆变量的用途和含义
-
原则:名字应反映变量的内容和用途
📊 对比三种命名风格
# 版本1:无意义命名(难以理解)
a = 35.0
b = 12.50
c = a * b
print(c)
# 版本2:助记命名(清晰易懂)
hours = 35.0 # 工作小时数
rate = 12.50 # 小时工资率
pay = hours * rate # 总工资
print(pay)
# 版本3:混乱命名(完全不可读)
x1q3z9ahd = 35.0
x1q3z9afd = 12.50
x1q3p9afd = x1q3z9ahd * x1q3z9afd
print(x1q3p9afd)
🔍 初学者与保留字的困惑
# 初学者容易混淆:哪些是保留字?哪些是变量名?
for word in words: # for, in, : 是保留字
print(word) # print 是函数,word, words 是变量名
# 类比帮助理解
for slice in pizza: # 明显看出pizza和slice是程序员选择的变量名
print(slice) # Python不懂"披萨",只懂语法结构
🎨 编辑器辅助
-
现代编辑器用不同颜色区分保留字和变量
-
保留字通常显示为粗体或特殊颜色
-
经过练习,你能快速识别代码结构
🐛 调试(Debugging)
🔴 语法错误(Syntax Errors)
1. 非法变量名
# 错误:使用保留字
class = "Python课" # SyntaxError: invalid syntax
yield = 5 # SyntaxError: invalid syntax
# 错误:包含非法字符
odd~job = "工作" # SyntaxError: invalid syntax
US$ = 100 # SyntaxError: invalid syntax
2. 变量名中的空格
bad name = 5 # SyntaxError: invalid syntax
# Python认为这是"bad"和"name"两个没有运算符的操作数
💡 解决方案
-
仔细检查错误行和前一行的语法
-
使用编辑器语法高亮功能
-
记住Python的错误提示可能不够具体
🔵 运行时错误(Runtime Errors)
1. 未定义变量
principal = 327.68
interest = principle * rate # NameError: name 'principle' is not defined
# 拼写错误:principal ≠ principle
2. 大小写敏感
LaTeX = "文档系统"
print(latex) # NameError: name 'latex' is not defined
# LaTeX ≠ latex
💡 解决方案
-
检查变量名拼写是否一致
-
确保变量在使用前已赋值
-
使用有意义的变量名减少拼写错误
🟡 语义错误(Semantic Errors)
运算顺序错误
# 错误:想要计算 1/(2π)
result = 1.0 / 2.0 * pi # 实际计算的是 (1/2)*π = π/2
# 正确:使用括号明确意图
result = 1.0 / (2.0 * pi) # 这才是 1/(2π)
常见陷阱
# 例1:浮点数精度
x = 0.1 + 0.2 # 期望0.3,实际0.30000000000000004
# 例2:整数除法
# Python 2: 9/2 = 4
# Python 3: 9/2 = 4.5
📋 调试策略与技巧
1. 预防性编程
# 使用有意义的变量名
work_hours = 40
hourly_rate = 25.0
# 添加清晰的注释
# 计算税前工资:工作小时 × 小时工资率
gross_pay = work_hours * hourly_rate
2. 逐步测试
# 复杂表达式分步计算
numerator = 2 * x + 3
denominator = x - 1
result = numerator / denominator
# 检查中间值
print(f"分子: {numerator}, 分母: {denominator}")
3. 使用print调试
def calculate_discount(price, discount_rate):
print(f"调试: 原价={price}, 折扣率={discount_rate}")
discounted = price * (1 - discount_rate)
print(f"调试: 折后价={discounted}")
return discounted
4. 常见错误检查清单
-
变量名是否拼写正确?
-
变量是否在使用前已定义?
-
是否误用了保留字?
-
运算顺序是否正确?
-
是否需要添加括号?
-
浮点数计算是否考虑了精度?
💎 核心要点总结
注释
-
解释"为什么",而非"做什么"
-
保持注释简洁相关
-
使用注释作为调试工具
变量命名
-
使用助记变量名提高可读性
-
区分保留字和自定义变量名
-
保持命名一致性
调试
-
语法错误:检查保留字使用和特殊字符
-
运行时错误:检查变量定义和拼写
-
语义错误:检查运算顺序和逻辑意图
黄金法则:写代码时想着三个月后的自己。清晰的注释和命名的代码,能让未来的你(和其他开发者)感激不尽!调试是编程的一部分,不要害怕错误——每个错误都是学习的机会。
1200

被折叠的 条评论
为什么被折叠?



