1. 猜数字游戏
目标:巩固随机数、条件判断和循环
import random
def guess_number():
number = random.randint(1, 100)
attempts = 0
while True:
guess = int(input("猜一个 1-100 的数字: "))
attempts += 1
if guess < number:
print("太小了!")
elif guess > number:
print("太大了!")
else:
print(f"恭喜!你用了 {attempts} 次猜对了!")
break
guess_number()
知识点:random 模块、while 循环、if-elif-else
2. 待办事项列表
目标:练习列表操作和函数封装
todos = []
def add_todo(task):
todos.append({"task": task, "done": False})
print(f"已添加: {task}")
def list_todos():
for i, todo in enumerate(todos, 1):
status = "✓" if todo["done"] else "○"
print(f"{i}. [{status}] {todo['task']}")
def complete_todo(index):
if 0 <= index < len(todos):
todos[index]["done"] = True
print(f"已完成: {todos[index]['task']}")
add_todo("学习 Python")
add_todo("做练习题")
list_todos()
知识点:列表、字典、函数、索引操作
3. 文件批处理工具
目标:掌握文件读写和字符串处理
import os
def batch_rename(folder, old_ext, new_ext):
"""批量修改文件扩展名"""
for filename in os.listdir(folder):
if filename.endswith(old_ext):
new_name = filename.replace(old_ext, new_ext)
os.rename(
os.path.join(folder, filename),
os.path.join(folder, new_name)
)
print(f"重命名: {filename} -> {new_name}")
# batch_rename("./my_files", ".txt", ".md")
知识点:os 模块、文件操作、字符串方法
4. 石头剪刀布游戏
目标:练习随机选择和条件判断
import random
def rock_paper_scissors():
choices = ['石头', '剪刀', '布']
computer = random.choice(choices)
player = input("请输入(石头/剪刀/布): ")
if player == computer:
print(f"平局!你们都出了{computer}")
elif (player == '石头' and computer == '剪刀') or \
(player == '剪刀' and computer == '布') or \
(player == '布' and computer == '石头'):
print(f"你赢了!你出了{player},电脑出了{computer}")
else:
print(f"你输了!你出了{player},电脑出了{computer}")
rock_paper_scissors()
知识点:random.choice、多条件判断、逻辑运算符
5. 学生成绩管理
目标:练习字典操作和数据排序
students = {
'小明': {'math': 90, 'english': 85, 'python': 95},
'小红': {'math': 78, 'english': 92, 'python': 88},
'小刚': {'math': 85, 'english': 76, 'python': 90},
}
def get_average(student):
scores = student.values()
return sum(scores) / len(scores)
def rank_students(students):
ranked = sorted(
students.items(),
key=lambda x: get_average(x[1]),
reverse=True
)
for rank, (name, scores) in enumerate(ranked, 1):
avg = get_average(scores)
print(f"第{rank}名: {name} 平均分 {avg:.1f}")
rank_students(students)
知识点:嵌套字典、sorted 排序、lambda 函数
6. 简易计算器
目标:练习函数定义和异常处理
def calculate(a, b, operator):
try:
if operator == '+':
return a + b
elif operator == '-':
return a - b
elif operator == '*':
return a * b
elif operator == '/':
return a / b
else:
return "不支持的运算符"
except ZeroDivisionError:
return "错误:除数不能为零"
# 测试
print(calculate(10, 3, '+')) # 13
print(calculate(10, 3, '/')) # 3.333...
print(calculate(10, 0, '/')) # 错误提示
知识点:try-except、ZeroDivisionError、多分支判断