08 - 练习题集¶
基础练习、进阶练习、项目练习
📖 章节概述¶
本章将提供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-代码示例。