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-exceptZeroDivisionError、多分支判断