# 你写的代码print("Hello, Python!")# 解释器的工作:# 1. 读取这行代码# 2. 理解print是一个输出函数# 3. 理解"Hello, Python!"是一个字符串# 4. 调用系统输出功能# 5. 在屏幕上显示:Hello, Python!

好的代码本身就是文档,但加上注释的代码是艺术品。
# 坏例子:无注释的"天书"def p(a,b):r=1for _ in range(b):r*=areturn r# 好例子:有注释的"说明书"def power(base, exponent):"""计算一个数的幂参数:base: 底数exponent: 指数返回:base的exponent次幂"""result = 1for _ in range(exponent):result *= basereturn result
# 单行注释以#开头,后面的内容都会被Python忽略x = 10 # 这是行尾注释,解释这行代码的作用# 计算圆的面积radius = 5.0area = 3.14159 * radius ** 2 # πr²公式# 调试时临时禁用代码# print("这行不会执行")print("这行会执行")
# 不好的注释x = x + 1 # x加1# 好的注释# 计数器递增,准备处理下一个用户user_index = user_index + 1# 解释"为什么"而不是"是什么"# 由于API限制,需要延迟0.1秒避免频率限制time.sleep(0.1)
"""项目:学生成绩管理系统作者:张三创建时间:2026-01-15最后修改:2026-01-20版本:1.2.0功能说明:1. 添加学生信息2. 查询学生成绩3. 统计班级平均分4. 生成成绩报告"""def calculate_average(scores):'''计算平均分这个方法接收一个分数列表,返回这些分数的平均值。如果列表为空,返回0。参数:scores: 分数列表,如[85, 92, 78]返回:平均分(浮点数)'''if not scores: # 如果列表为空return 0.0return sum(scores) / len(scores)
# 错误示例:尝试嵌套多行注释'''这是外层注释'''这里不是内层注释的开始'''这里还是外层注释的一部分'''# 正确做法:使用单行注释嵌套'''这是外层注释可以包含详细描述# 这里是内层的注释# 用多个单行注释实现"嵌套"'''
def add(a, b):"""返回两个数字的和"""return a + b# 查看文档字符串print(add.__doc__) # 输出:返回两个数字的和help(add) # 显示帮助信息
def calculate_bmi(weight, height, unit='metric'):"""计算身体质量指数(BMI)根据体重和身高计算BMI值,并返回BMI分类。参数:weight: 体重- 公制单位:千克(kg)- 英制单位:磅(lbs)height: 身高- 公制单位:米(m)- 英制单位:英寸(inch)unit: 单位系统,默认为'metric'(公制)可选值:'metric'(公制),'imperial'(英制)返回:tuple: (bmi值, 分类字符串)异常:ValueError: 当单位不是'metric'或'imperial'时ZeroDivisionError: 当身高为0时示例:>>> calculate_bmi(70, 1.75)(22.86, '正常范围')>>> calculate_bmi(154, 70, 'imperial')(22.1, '正常范围')"""if unit == 'metric':bmi = weight / (height ** 2)elif unit == 'imperial':bmi = (weight / (height ** 2)) * 703else:raise ValueError("单位必须是'metric'或'imperial'")if bmi < 18.5:category = "体重过轻"elif bmi < 25:category = "正常范围"elif bmi < 30:category = "体重过重"else:category = "肥胖"return round(bmi, 2), category
# 1. 使用help()函数help(calculate_bmi)# 2. 使用__doc__属性print(calculate_bmi.__doc__)# 3. 使用inspect模块import inspectdoc = inspect.getdoc(calculate_bmi)print(doc)# 4. 使用pydoc模块(生成HTML文档)# python -m pydoc -w your_module
class Student:"""学生类表示一个学生的基本信息,包括姓名、学号和成绩。提供计算平均分和判断是否及格的方法。属性:name: 学生姓名student_id: 学号grades: 成绩字典,格式为{课程: 分数}"""def __init__(self, name, student_id):"""初始化学生对象参数:name: 学生姓名student_id: 学号"""self.name = nameself.student_id = student_idself.grades = {} # 初始为空字典def add_grade(self, course, score):"""添加一门课程的成绩参数:course: 课程名称score: 分数(0-100)异常:ValueError: 当分数不在0-100范围内时"""if not 0 <= score <= 100:raise ValueError("分数必须在0-100之间")self.grades[course] = scoredef get_average(self):"""计算平均分返回:平均分(浮点数),如果没有成绩则返回0.0"""if not self.grades:return 0.0return sum(self.grades.values()) / len(self.grades)def is_passing(self, passing_score=60):"""判断学生是否及格参数:passing_score: 及格分数线,默认为60返回:bool: 如果所有课程都及格返回True,否则False"""return all(score >= passing_score for score in self.grades.values())
# 不好:解释代码做什么x = x + 1 # x加1# 好:解释为什么这么做x = x + 1 # 处理下一个用户,所以索引加1
def quicksort(arr):"""快速排序算法实现采用分治策略:1. 选择一个基准元素2. 将数组分为小于基准和大于基准的两部分3. 递归排序两部分平均时间复杂度:O(n log n)最坏时间复杂度:O(n²)空间复杂度:O(log n)"""if len(arr) <= 1:return arrpivot = arr[len(arr) // 2]left = [x for x in arr if x < pivot]middle = [x for x in arr if x == pivot]right = [x for x in arr if x > pivot]return quicksort(left) + middle + quicksort(right)
"""数学工具模块本模块提供各种数学计算工具函数,包括基本运算、统计分析、几何计算等。版本: 1.0.0作者: 张三最后更新: 2026-01-20使用示例:>>> from math_utils import calculate_average>>> calculate_average([1, 2, 3, 4, 5])3.0"""__version__ = "1.0.0"__author__ = "张三"# 模块导入import mathimport statistics# 函数定义...
"""数学工具模块本模块提供各种数学计算工具函数,包括基本运算、统计分析、几何计算等。版本: 1.0.0作者: 张三最后更新: 2026-01-20使用示例:>>> from math_utils import calculate_average>>> calculate_average([1, 2, 3, 4, 5])3.0"""__version__ = "1.0.0"__author__ = "张三"# 模块导入import mathimport statistics# 函数定义...
# 错误:注释与代码不一致x = 10 # 设置用户年龄# 正确x = 10 # 设置重试次数上限
# 不好i = i + 1 # i加1# 好i = i + 1 # 移动到下一个元素
def binary_search(arr, target):"""二分查找算法前提:数组必须已排序时间复杂度:O(log n)参数:arr: 已排序的数组target: 要查找的目标值返回:如果找到返回索引,否则返回-1"""left, right = 0, len(arr) - 1while left <= right:mid = (left + right) // 2if arr[mid] == target:return midelif arr[mid] < target:left = mid + 1else:right = mid - 1return -1
from typing import List, Optionaldef calculate_average(numbers: List[float]) -> Optional[float]:"""计算平均值参数:numbers: 数字列表返回:平均值,如果列表为空则返回None"""if not numbers:return Nonereturn sum(numbers) / len(numbers)
"写代码时,想象维护你代码的人是一个知道你住址的暴力狂。"
--------End--