跳转至

08 - 练习题集

基础练习、进阶练习、项目练习

📖 章节概述

本章将提供Python练习题,帮助巩固所学知识。

🎯 学习目标

完成本章后,你将能够:

  • 巩固Python基础知识
  • 掌握编程技巧
  • 提高问题解决能力
  • 为面试做好准备

Python练习题进阶阶梯

1. 基础练习

1.1 数据类型

Python
# 练习1: 数据类型转换
# 将以下数据转换为指定类型
x = 3.14
y = 2.718
z = 42

# 转换为整数
int_x = int(x)
int_y = int(y)
int_z = int(z)

# 转换为浮点数
float_x = float(x)
float_y = float(y)
float_z = float(z)

# 转换为字符串
str_x = str(x)
str_y = str(y)
str_z = str(z)

# 转换为布尔值
bool_x = bool(x)
bool_y = bool(y)
bool_z = bool(z)

print(f"原始值: x={x}, y={y}, z={z}")
print(f"整数: {int_x}, {int_y}, {int_z}")
print(f"浮点数: {float_x}, {float_y}, {float_z}")
print(f"字符串: {str_x}, {str_y}, {str_z}")
print(f"布尔值: {bool_x}, {bool_y}, {bool_z}")

1.2 控制流程

Python
# 练习2: 条件语句
# 编写一个程序,判断一个数字是正数、负数还是零

number = float(input("请输入一个数字: "))

if number > 0:
    print(f"{number} 是正数")
elif number < 0:
    print(f"{number} 是负数")
else:
    print(f"{number} 是零")

1.3 循环结构

Python
# 练习3: 循环计算
# 计算1到100的和

total = 0
for i in range(1, 101):
    total += i

print(f"1到100的和是: {total}")

# 练习4: 阶乘计算
# 计算2的10次方

result = 1
for i in range(10):
    result *= 2

print(f"2的10次方是: {result}")

2. 进阶练习

2.1 函数定义

Python
# 练习5: 定义函数
# 编写一个函数,计算列表的平均值、最大值和最小值

def analyze_list(numbers):
    """
    分析列表的统计信息
    """
    if not numbers:
        return None

    average = sum(numbers) / len(numbers)
    maximum = max(numbers)
    minimum = min(numbers)

    return {
        "average": average,
        "maximum": maximum,
        "minimum": minimum,
        "count": len(numbers)
    }

# 测试函数
numbers = [23, 45, 67, 89, 12, 34]
result = analyze_list(numbers)
print(result)

2.2 类和对象

Python
# 练习6: 定义类
# 定义一个Person类,包含姓名、年龄和职业

class Person:
    def __init__(self, name, age, occupation):
        self.name = name
        self.age = age
        self.occupation = occupation

    def introduce(self):
        return f"我叫{self.name},今年{self.age}岁,是一名{self.occupation}。"

    def is_adult(self):
        return self.age >= 18

# 创建Person对象
person1 = Person("张三", 25, "工程师")
person2 = Person("李四", 17, "学生")

# 调用方法
print(person1.introduce())
print(person2.introduce())
print(f"{person1.name}是成年人: {person1.is_adult()}")
print(f"{person2.name}是成年人: {person2.is_adult()}")

2.3 文件操作

Python
# 练习7: 文件读写
# 编写一个程序,读取文件内容并写入新文件

def copy_file(input_file, output_file):
    """
    复制文件内容
    """
    try:
        # 读取输入文件
        with open(input_file, 'r', encoding='utf-8') as f:
            content = f.read()

        # 写入输出文件
        with open(output_file, 'w', encoding='utf-8') as f:
            f.write(content)

        print(f"文件复制成功!从 {input_file}{output_file}")

    except FileNotFoundError:
        print(f"错误:文件 {input_file} 不存在")
    except Exception as e:
        print(f"错误:{e}")

# 测试函数
copy_file("input.txt", "output.txt")

3. 项目练习

3.1 学生成绩管理系统

Python
# 项目练习1: 学生成绩管理系统
# 创建一个简单的学生成绩管理系统

class Student:
    def __init__(self, name, student_id):
        self.name = name
        self.student_id = student_id
        self.scores = {}

    def add_score(self, subject, score):
        self.scores[subject] = score

    def get_average(self):
        if not self.scores:
            return 0
        return sum(self.scores.values()) / len(self.scores)

    def get_max_score(self):
        if not self.scores:
            return 0
        return max(self.scores.values())

    def get_min_score(self):
        if not self.scores:
            return 0
        return min(self.scores.values())

class GradeManager:
    def __init__(self):
        self.students = {}

    def add_student(self, name, student_id):
        self.students[student_id] = Student(name, student_id)

    def add_score(self, student_id, subject, score):
        if student_id in self.students:
            self.students[student_id].add_score(subject, score)

    def get_student_info(self, student_id):
        if student_id in self.students:
            student = self.students[student_id]
            return {
                "name": student.name,
                "student_id": student.student_id,
                "scores": student.scores,
                "average": student.get_average(),
                "max_score": student.get_max_score(),
                "min_score": student.get_min_score()
            }
        return None

    def get_class_average(self, subject):
        total = 0
        count = 0
        for student in self.students.values():
            if subject in student.scores:
                total += student.scores[subject]
                count += 1
        return total / count if count > 0 else 0

# 测试系统
manager = GradeManager()
manager.add_student("张三", "001")
manager.add_student("李四", "002")
manager.add_student("王五", "003")

manager.add_score("001", "数学", 85)
manager.add_score("001", "语文", 90)
manager.add_score("001", "英语", 88)

manager.add_score("002", "数学", 92)
manager.add_score("002", "语文", 88)
manager.add_score("002", "英语", 95)

manager.add_score("003", "数学", 78)
manager.add_score("003", "语文", 85)
manager.add_score("003", "英语", 82)

print("学生001信息:")
print(manager.get_student_info("001"))
print(f"数学平均分: {manager.get_class_average('数学')}")
print(f"语文平均分: {manager.get_class_average('语文')}")
print(f"英语平均分: {manager.get_class_average('英语')}")

3.2 简易计算器

Python
# 项目练习2: 简易计算器
# 创建一个支持加减乘除的计算器

class Calculator:
    def __init__(self):
        self.history = []

    def add(self, a, b):
        result = a + b
        self.history.append(f"{a} + {b} = {result}")
        return result

    def subtract(self, a, b):
        result = a - b
        self.history.append(f"{a} - {b} = {result}")
        return result

    def multiply(self, a, b):
        result = a * b
        self.history.append(f"{a} * {b} = {result}")
        return result

    def divide(self, a, b):
        if b == 0:
            return "错误:除数不能为零"
        result = a / b
        self.history.append(f"{a} / {b} = {result}")
        return result

    def get_history(self):
        return self.history

# 测试计算器
calc = Calculator()
print(calc.add(10, 5))
print(calc.subtract(10, 3))
print(calc.multiply(10, 5))
print(calc.divide(10, 2))
print("\n计算历史:")
for item in calc.get_history():
    print(item)

4. 总结

本章提供了丰富的Python练习题,帮助巩固所学知识。

5. 下一步

继续学习09-代码示例