今天主要完成python基础语法的学习,大致过了一遍
- Python 基础语法
1.1 变量、数据类型、运算符
变量与数据类型
name = "Python学习" # 字符串
age = 3 # 整数
height = 1.75 # 浮点数
is_student = True # 布尔值
scores = [95, 88, 92] # 列表
person_info = {"name": "张三", "age": 20} # 字典
print(f"数据类型示例:")
print(f"name: {name}, 类型: {type(name)}")
print(f"age: {age}, 类型: {type(age)}")
print(f"height: {height}, 类型: {type(height)}")
print(f"is_student: {is_student}, 类型: {type(is_student)}")
print(f"scores: {scores}, 类型: {type(scores)}")
print(f"person_info: {person_info}, 类型: {type(person_info)}")
运算符
a = 10
b = 3
print(f"\n运算符示例:")
print(f"a + b = {a + b}") # 加法
print(f"a - b = {a - b}") # 减法
print(f"a * b = {a * b}") # 乘法
print(f"a / b = {a / b}") # 除法
print(f"a // b = {a // b}") # 整除
print(f"a % b = {a % b}") # 取余
print(f"a ** 2 = {a ** 2}") # 幂运算
print(f"a > b: {a > b}") # 比较运算
print(f"a == 10: {a == 10}") # 相等比较
print(f"逻辑运算: {a > 5 and b < 5}") # 逻辑运算
1.2 条件语句
if-elif-else 语句
def check_score(score):
"""根据分数判断等级"""
if score >= 90:
return "优秀"
elif score >= 80:
return "良好"
elif score >= 60:
return "及格"
else:
return "不及格"
测试条件语句
scores_to_check = [95, 85, 75, 55]
print("成绩等级判断:")
for score in scores_to_check:
grade = check_score(score)
print(f"分数 {score}: {grade}")
嵌套条件语句
def check_eligibility(age, has_id_card):
"""检查资格"""
if age >= 18:
if has_id_card:
return "可以办理银行卡"
else:
return "需要身份证才能办理"
else:
return "未成年,不能办理"
print(f"\n资格检查:")
print(check_eligibility(20, True))
print(check_eligibility(16, True))
print(check_eligibility(25, False))
1.3 循环语句
for 循环
print("for 循环示例:")
遍历列表
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
print("1. 遍历列表:")
for fruit in fruits:
print(f" - 我喜欢吃{fruit}")
使用 range
print("\n2. 使用 range:")
for i in range(5):
print(f" 第{i+1}次循环")
遍历字典
student_scores = {"张三": 85, "李四": 92, "王五": 78}
print("\n3. 遍历字典:")
for name, score in student_scores.items():
print(f" {name}的分数是: {score}")
while 循环
print("\nwhile 循环示例:")
counter = 0
while counter < 3:
print(f" counter = {counter}")
counter += 1
break 和 continue
print("\nbreak 和 continue 示例:")
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("遇到5时停止:")
for num in numbers:
if num == 5:
break
print(f" {num}")
print("\n跳过偶数:")
for num in numbers:
if num % 2 == 0:
continue
print(f" {num}")
1.4 函数定义与调用
基本函数定义
def greet(name):
"""简单的问候函数"""
return f"你好, {name}!"
带默认参数的函数
def power(base, exponent=2):
"""计算幂,默认指数为2"""
return base ** exponent
返回多个值的函数
def calculate_statistics(numbers):
"""计算统计信息"""
total = sum(numbers)
count = len(numbers)
average = total / count if count > 0 else 0
maximum = max(numbers) if numbers else None
minimum = min(numbers) if numbers else None
return total, average, maximum, minimum
可变参数
def sum_all(*args):
"""计算任意数量参数的和"""
return sum(args)
关键字参数
def print_student_info(**kwargs):
"""打印学生信息"""
for key, value in kwargs.items():
print(f"{key}: {value}")
测试函数
print("函数示例:")
print(greet("小明"))
print(f"\n幂计算: 3^2 = {power(3)}")
print(f"幂计算: 2^3 = {power(2, 3)}")
numbers_list = [10, 20, 30, 40, 50]
total, avg, max_val, min_val = calculate_statistics(numbers_list)
print(f"\n统计信息: 总和={total}, 平均={avg}, 最大值={max_val}, 最小值={min_val}")
print(f"\n可变参数求和: {sum_all(1, 2, 3, 4, 5)}")
print("\n关键字参数:")
print_student_info(name="张三", age=20, major="计算机科学", score=95)
📊 2. 数据结构
2.1 列表操作
列表基本操作
print("列表操作示例:")
创建列表
fruits = ["苹果", "香蕉", "橙子"]
numbers = [1, 2, 3, 4, 5]
mixed_list = [1, "hello", 3.14, True]
print(f"原始列表: {fruits}")
添加元素
fruits.append("葡萄")
print(f"添加后: {fruits}")
插入元素
fruits.insert(1, "梨")
print(f"插入后: {fruits}")
删除元素
removed_fruit = fruits.pop(2)
print(f"删除索引2的元素: {removed_fruit}, 剩余: {fruits}")
列表切片
print(f"\n列表切片:")
print(f"前3个: {fruits[:3]}")
print(f"索引1到3: {fruits[1:4]}")
print(f"每隔一个: {fruits[::2]}")
print(f"反转: {fruits[::-1]}")
列表推导式
print(f"\n列表推导式:")
squares = [x**2 for x in range(1, 6)]
print(f"1-5的平方: {squares}")
even_numbers = [x for x in range(1, 11) if x % 2 == 0]
print(f"1-10的偶数: {even_numbers}")
列表排序
scores = [88, 92, 78, 95, 85]
scores.sort(reverse=True)
print(f"\n降序排序: {scores}")
2.2 元组
元组操作
print("元组示例:")
创建元组
student_info = ("张三", 20, "计算机科学")
coordinates = (10.5, 20.3)
single_element = (42,) # 注意逗号
print(f"学生信息: {student_info}")
print(f"姓名: {student_info[0]}")
print(f"年龄: {student_info[1]}")
print(f"专业: {student_info[2]}")
元组解包
name, age, major = student_info
print(f"\n解包: 姓名={name}, 年龄={age}, 专业={major}")
元组与列表转换
numbers_list = [1, 2, 3, 4, 5]
numbers_tuple = tuple(numbers_list)
print(f"\n列表转元组: {numbers_tuple}")
多个返回值
def get_min_max(numbers):
return min(numbers), max(numbers)
min_val, max_val = get_min_max([10, 20, 5, 30, 15])
print(f"\n最小值和最大值: {min_val}, {max_val}")
2.3 字典
字典操作
print("字典操作示例:")
创建字典
student = {
"name": "李四",
"age": 21,
"major": "数据科学",
"grades": {"数学": 90, "编程": 95, "英语": 88}
}
print(f"学生信息: {student}")
访问元素
print(f"姓名: {student['name']}")
print(f"年龄: {student.get('age')}")
print(f"数学成绩: {student['grades']['数学']}")
添加/修改元素
student["email"] = "lisi@example.com"
student["age"] = 22
print(f"\n添加邮箱后: {student}")
删除元素
removed_grade = student["grades"].pop("英语")
print(f"\n删除英语成绩后: {student['grades']}")
遍历字典
print("\n遍历字典:")
for key, value in student.items():
print(f"{key}: {value}")
字典推导式
squares_dict = {x: x**2 for x in range(1, 6)}
print(f"\n字典推导式: {squares_dict}")
2.4 集合
集合操作
print("集合操作示例:")
创建集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(f"集合1: {set1}")
print(f"集合2: {set2}")
集合运算
print(f"\n并集: {set1 | set2}") # 或 set1.union(set2)
print(f"交集: {set1 & set2}") # 或 set1.intersection(set2)
print(f"差集: {set1 - set2}") # 在set1中但不在set2中
print(f"对称差集: {set1 ^ set2}") # 不同时在两个集合中
集合操作
set1.add(6)
print(f"\n添加元素后: {set1}")
set1.remove(3)
print(f"删除元素后: {set1}")
集合推导式
even_squares = {x2 for x in range(1, 11) if x2 % 2 == 0}
print(f"\n1-10的偶数的平方: {even_squares}")
2.5 字符串操作
字符串操作
print("字符串操作示例:")
text = "Hello, Python Programming!"
基本操作
print(f"原始字符串: {text}")
print(f"长度: {len(text)}")
print(f"大写: {text.upper()}")
print(f"小写: {text.lower()}")
print(f"首字母大写: {text.title()}")
print(f"替换: {text.replace('Python', 'AI')}")
分割和连接
words = text.split()
print(f"\n分割单词: {words}")
print(f"用'-'连接: {'-'.join(words)}")
切片
print(f"\n切片操作:")
print(f"前5个字符: {text[:5]}")
print(f"最后5个字符: {text[-5:]}")
print(f"每隔2个字符: {text[::2]}")
字符串格式化
name = "王五"
age = 25
score = 95.5
多种格式化方式
print(f"\n字符串格式化:")
print("1. f-string: ", f"姓名: {name}, 年龄: {age}, 分数: {score:.1f}")
print("2. format: ", "姓名: {}, 年龄: {}, 分数: {:.1f}".format(name, age, score))
print("3. %格式化: ", "姓名: %s, 年龄: %d, 分数: %.1f" % (name, age, score))
字符串检查
print(f"\n字符串检查:")
print(f"是否以Hello开头: {text.startswith('Hello')}")
print(f"是否以!结尾: {text.endswith('!')}")
print(f"是否包含Python: {'Python' in text}")
🎯 3. 面向对象编程
3.1 类与对象
类与对象
print("面向对象编程示例:")
class Student:
"""学生类"""
# 类属性
school = "AI大学"def __init__(self, name, age, student_id):"""初始化方法"""self.name = nameself.age = ageself.student_id = student_idself.courses = []def enroll_course(self, course_name):"""选课"""self.courses.append(course_name)print(f"{self.name} 选了课程: {course_name}")def display_info(self):"""显示学生信息"""info = f"学生信息:\n"info += f" 姓名: {self.name}\n"info += f" 年龄: {self.age}\n"info += f" 学号: {self.student_id}\n"info += f" 学校: {self.school}\n"info += f" 课程: {', '.join(self.courses) if self.courses else '无'}"return info
创建对象
student1 = Student("张三", 20, "2023001")
student2 = Student("李四", 21, "2023002")
调用方法
student1.enroll_course("Python编程")
student1.enroll_course("深度学习")
student2.enroll_course("机器学习")
print("\n" + student1.display_info())
print("\n" + student2.display_info())
访问类属性
print(f"\n学校名称: {Student.school}")
3.2 继承
继承
print("\n继承示例:")
class Animal:
"""动物基类"""
def __init__(self, name, species):self.name = nameself.species = speciesdef make_sound(self):return "动物叫声"def get_info(self):return f"{self.name} ({self.species})"
class Dog(Animal):
"""狗类,继承自动物类"""
def __init__(self, name, breed):super().__init__(name, "犬科")self.breed = breeddef make_sound(self):return "汪汪!"def get_info(self):base_info = super().get_info()return f"{base_info}, 品种: {self.breed}"
class Cat(Animal):
"""猫类,继承自动物类"""
def make_sound(self):return "喵喵!"
创建对象
dog = Dog("旺财", "金毛")
cat = Cat("小花", "猫科")
print(dog.get_info())
print(f"叫声: {dog.make_sound()}")
print(f"\n{cat.get_info()}")
print(f"叫声: {cat.make_sound()}")
3.3 特殊方法
特殊方法(魔术方法)
print("\n特殊方法示例:")
class Vector:
"""向量类,演示特殊方法"""
def __init__(self, x, y):self.x = xself.y = ydef __repr__(self):"""返回对象的字符串表示"""return f"Vector({self.x}, {self.y})"def __str__(self):"""用户友好的字符串表示"""return f"({self.x}, {self.y})"def __add__(self, other):"""向量加法"""return Vector(self.x + other.x, self.y + other.y)def __sub__(self, other):"""向量减法"""return Vector(self.x - other.x, self.y - other.y)def __mul__(self, scalar):"""标量乘法"""return Vector(self.x * scalar, self.y * scalar)def __len__(self):"""向量长度(维度)"""return 2def __eq__(self, other):"""相等比较"""return self.x == other.x and self.y == other.y
使用向量类
v1 = Vector(2, 3)
v2 = Vector(4, 5)
print(f"v1 = {v1}")
print(f"v2 = {v2}")
print(f"v1 + v2 = {v1 + v2}")
print(f"v1 - v2 = {v1 - v2}")
print(f"v1 * 3 = {v1 * 3}")
print(f"v1 的维度: {len(v1)}")
print(f"v1 == v2: {v1 == v2}")
3.4 装饰器
装饰器
print("\n装饰器示例:")
def timer_decorator(func):
"""计时装饰器"""
import time
def wrapper(*args, **kwargs):start_time = time.time()result = func(*args, **kwargs)end_time = time.time()print(f"函数 {func.__name__} 执行时间: {end_time - start_time:.6f}秒")return result
return wrapper
def debug_decorator(func):
"""调试装饰器"""
def wrapper(args, **kwargs):
print(f"\n调用函数: {func.name}")
print(f"参数: args={args}, kwargs={kwargs}")
result = func(args, **kwargs)
print(f"返回值: {result}")
return result
return wrapper
使用装饰器
@timer_decorator
@debug_decorator
def fibonacci(n):
"""计算斐波那契数列"""
if n <= 1:
return n
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
类装饰器
class Counter:
"""计数器装饰器类"""
def __init__(self, func):self.func = funcself.count = 0def __call__(self, *args, **kwargs):self.count += 1print(f"函数 {self.func.__name__} 被调用了 {self.count} 次")return self.func(*args, **kwargs)
@Counter
def say_hello(name):
return f"你好, {name}!"
测试
print("斐波那契数列测试:")
print(f"fibonacci(10) = {fibonacci(10)}")
print("\n计数器装饰器测试:")
print(say_hello("小明"))
print(say_hello("小红"))
📁 4. 文件与异常处理
4.1 文件操作
文件操作
print("文件操作示例:")
import os
写入文件
def write_to_file(filename, content):
"""写入文件"""
try:
with open(filename, 'w', encoding='utf-8') as file:
file.write(content)
print(f"成功写入文件: {filename}")
except IOError as e:
print(f"写入文件出错: {e}")
读取文件
def read_from_file(filename):
"""读取文件"""
try:
with open(filename, 'r', encoding='utf-8') as file:
content = file.read()
print(f"文件内容:\n{content}")
return content
except FileNotFoundError:
print(f"文件不存在: {filename}")
return None
except IOError as e:
print(f"读取文件出错: {e}")
return None
追加内容
def append_to_file(filename, content):
"""追加内容到文件"""
try:
with open(filename, 'a', encoding='utf-8') as file:
file.write("\n" + content)
print(f"成功追加内容到文件: {filename}")
except IOError as e:
print(f"追加内容出错: {e}")
按行读取
def read_lines(filename):
"""按行读取文件"""
try:
with open(filename, 'r', encoding='utf-8') as file:
lines = file.readlines()
print(f"文件共有 {len(lines)} 行:")
for i, line in enumerate(lines, 1):
print(f"第{i}行: {line.strip()}")
return lines
except FileNotFoundError:
print(f"文件不存在: {filename}")
return None
CSV文件操作
import csv
def write_csv(filename, data):
"""写入CSV文件"""
try:
with open(filename, 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['姓名', '年龄', '分数']) # 写入标题
writer.writerows(data) # 写入数据
print(f"成功写入CSV文件: {filename}")
except IOError as e:
print(f"写入CSV文件出错: {e}")
def read_csv(filename):
"""读取CSV文件"""
try:
with open(filename, 'r', encoding='utf-8') as file:
reader = csv.reader(file)
data = [row for row in reader]
print(f"CSV文件内容:")
for row in data:
print(row)
return data
except FileNotFoundError:
print(f"CSV文件不存在: {filename}")
return None
测试文件操作
filename = "test.txt"
csv_filename = "students.csv"
文本文件操作
write_to_file(filename, "这是第一行文本\n这是第二行文本")
read_from_file(filename)
append_to_file(filename, "这是追加的内容")
read_lines(filename)
CSV文件操作
student_data = [
["张三", 20, 95],
["李四", 21, 88],
["王五", 22, 92]
]
write_csv(csv_filename, student_data)
read_csv(csv_filename)
清理文件
if os.path.exists(filename):
os.remove(filename)
print(f"已删除文件: {filename}")
if os.path.exists(csv_filename):
os.remove(csv_filename)
print(f"已删除文件: {csv_filename}")
4.2 异常处理
异常处理
print("\n异常处理示例:")
def safe_divide(a, b):
"""安全的除法运算"""
try:
result = a / b
except ZeroDivisionError:
print("错误: 除数不能为零!")
return None
except TypeError:
print("错误: 参数类型错误!")
return None
except Exception as e:
print(f"未知错误: {e}")
return None
else:
print("计算成功!")
return result
finally:
print("除法运算结束\n")
测试异常处理
print("测试1: 正常除法")
print(f"10 / 2 = {safe_divide(10, 2)}")
print("测试2: 除以零")
print(f"10 / 0 = {safe_divide(10, 0)}")
print("测试3: 类型错误")
print(f"10 / '2' = {safe_divide(10, '2')}")
自定义异常
class AgeError(Exception):
"""年龄异常"""
def init(self, age, message="年龄必须在0-150之间"):
self.age = age
self.message = message
super().init(self.message)
def __str__(self):return f"{self.age} -> {self.message}"
def validate_age(age):
"""验证年龄"""
if not 0 <= age <= 150:
raise AgeError(age)
return True
测试自定义异常
print("自定义异常测试:")
ages_to_test = [25, 200, -5, 30]
for age in ages_to_test:
try:
validate_age(age)
print(f"年龄 {age}: 验证通过")
except AgeError as e:
print(f"年龄 {age}: 验证失败 - {e}")
4.3 上下文管理器
上下文管理器
print("\n上下文管理器示例:")
自定义上下文管理器
class DatabaseConnection:
"""数据库连接上下文管理器"""
def __init__(self, db_name):self.db_name = db_nameself.connection = Nonedef __enter__(self):"""进入上下文时调用"""print(f"连接到数据库: {self.db_name}")self.connection = f"Connection to {self.db_name}"return selfdef __exit__(self, exc_type, exc_val, exc_tb):"""退出上下文时调用"""print(f"断开数据库连接: {self.db_name}")self.connection = Noneif exc_type:print(f"发生异常: {exc_type.__name__}: {exc_val}")return True # 抑制异常def execute_query(self, query):"""执行查询"""if self.connection:print(f"执行查询: {query}")return f"Result of: {query}"else:raise ConnectionError("没有数据库连接")
使用上下文管理器
print("数据库操作:")
with DatabaseConnection("mydb") as db:
result = db.execute_query("SELECT * FROM users")
print(f"查询结果: {result}")
使用 contextlib
from contextlib import contextmanager
@contextmanager
def temporary_file(filename, content):
"""创建临时文件的上下文管理器"""
print(f"创建临时文件: {filename}")
with open(filename, 'w', encoding='utf-8') as f:
f.write(content)
try:
yield filename
finally:
print(f"删除临时文件: {filename}")
import os
if os.path.exists(filename):
os.remove(filename)
print("\n临时文件操作:")
with temporary_file("temp.txt", "临时内容") as temp_file:
print(f"处理文件: {temp_file}")
with open(temp_file, 'r', encoding='utf-8') as f:
print(f"文件内容: {f.read()}")
🛠️ 5. Python 标准库
5.1 os 和 sys 模块
os 和 sys 模块
print("os 和 sys 模块示例:")
import os
import sys
os 模块
print("当前工作目录:", os.getcwd())
print("目录列表:", os.listdir('.'))
创建目录
os.makedirs("test_dir/sub_dir", exist_ok=True)
print("创建目录: test_dir/sub_dir")
环境变量
print("\n环境变量:")
print("PATH:", os.environ.get('PATH', '未设置'))
sys 模块
print("\nsys 模块信息:")
print("Python 版本:", sys.version)
print("平台:", sys.platform)
print("参数列表:", sys.argv)
print("模块搜索路径:")
for path in sys.path[:3]: # 只显示前3个
print(f" {path}")
清理
os.rmdir("test_dir/sub_dir")
os.rmdir("test_dir")
print("已清理测试目录")
5.2 datetime 和 time
datetime 和 time
print("\ndatetime 和 time 模块示例:")
from datetime import datetime, date, time, timedelta
import time as time_module
当前时间
now = datetime.now()
print(f"当前时间: {now}")
print(f"日期: {now.date()}")
print(f"时间: {now.time()}")
print(f"年: {now.year}, 月: {now.month}, 日: {now.day}")
格式化时间
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"格式化: {formatted}")
时间解析
parsed_time = datetime.strptime("2024-12-17 14:30:00", "%Y-%m-%d %H:%M:%S")
print(f"解析时间: {parsed_time}")
时间运算
one_day = timedelta(days=1)
yesterday = now - one_day
tomorrow = now + one_day
print(f"昨天: {yesterday.strftime('%Y-%m-%d')}")
print(f"明天: {tomorrow.strftime('%Y-%m-%d')}")
时间戳
timestamp = now.timestamp()
print(f"时间戳: {timestamp}")
print(f"从时间戳转换: {datetime.fromtimestamp(timestamp)}")
time 模块
print(f"\n当前时间戳: {time_module.time()}")
print(f"本地时间: {time_module.localtime()}")
time_module.sleep(0.5) # 休眠0.5秒
print("休眠0.5秒完成")
5.3 collections
collections 模块
print("\ncollections 模块示例:")
from collections import Counter, defaultdict, deque, OrderedDict, namedtuple
Counter - 计数器
words = ["apple", "banana", "apple", "orange", "banana", "apple"]
word_counts = Counter(words)
print("单词出现次数:", word_counts)
print("最常出现的单词:", word_counts.most_common(2))
defaultdict - 默认字典
student_scores = defaultdict(list)
student_scores["张三"].append(85)
student_scores["张三"].append(90)
student_scores["李四"].append(78)
print("\n学生成绩:")
for student, scores in student_scores.items():
print(f"{student}: {scores}")
deque - 双端队列
queue = deque(["A", "B", "C"])
queue.append("D") # 右侧添加
queue.appendleft("Z") # 左侧添加
print(f"\n队列: {queue}")
print(f"弹出左侧: {queue.popleft()}")
print(f"弹出右侧: {queue.pop()}")
print(f"弹出后队列: {queue}")
namedtuple - 命名元组
Point = namedtuple("Point", ["x", "y"])
p = Point(10, 20)
print(f"\n命名元组: {p}")
print(f"x坐标: {p.x}, y坐标: {p.y}")
OrderedDict - 有序字典
ordered_dict = OrderedDict()
ordered_dict["a"] = 1
ordered_dict["b"] = 2
ordered_dict["c"] = 3
print("\n有序字典:")
for key, value in ordered_dict.items():
print(f"{key}: {value}")
5.4 json
json 模块
print("\njson 模块示例:")
import json
Python 对象
data = {
"name": "张三",
"age": 20,
"courses": ["数学", "编程", "英语"],
"scores": {
"数学": 95,
"编程": 88,
"英语": 92
},
"is_student": True
}
转换为 JSON
json_str = json.dumps(data, ensure_ascii=False, indent=2)
print("JSON字符串:")
print(json_str)
保存到文件
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print("已保存到 data.json")
从文件读取
with open("data.json", "r", encoding="utf-8") as f:
loaded_data = json.load(f)
print("\n从文件加载的数据:")
print(loaded_data)
清理文件
import os
if os.path.exists("data.json"):
os.remove("data.json")
print("已删除 data.json")
🎯 完整测试程序
综合测试程序
def main():
"""主函数,演示所有功能"""
print("=" * 50)
print("Python 编程基础完整测试")
print("=" * 50)
# 测试所有功能
print("\n1. 测试基础语法...")
test_basic_syntax()print("\n2. 测试数据结构...")
test_data_structures()print("\n3. 测试面向对象编程...")
test_oop()print("\n4. 测试文件操作...")
test_file_operations()print("\n测试完成!")
def test_basic_syntax():
"""测试基础语法"""
# 条件语句
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
else:
grade = "C"
print(f"分数 {score} 的等级: {grade}")
# 循环
print("1-5的平方:")
for i in range(1, 6):print(f" {i}^2 = {i**2}")# 函数
def factorial(n):"""计算阶乘"""if n <= 1:return 1return n * factorial(n - 1)print(f"5的阶乘: {factorial(5)}")
def test_data_structures():
"""测试数据结构"""
# 列表推导式
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(f"1-10偶数的平方: {even_squares}")
# 字典推导式
square_dict = {x: x**2 for x in range(1, 6)}
print(f"数字平方字典: {square_dict}")# 集合操作
set_a = {1, 2, 3, 4, 5}
set_b = {4, 5, 6, 7, 8}
print(f"集合交集: {set_a & set_b}")
def test_oop():
"""测试面向对象编程"""
class Book:
def init(self, title, author, price):
self.title = title
self.author = author
self.price = price
def apply_discount(self, discount):self.price *= (1 - discount)return self.pricebook = Book("Python编程", "Guido", 99.0)
new_price = book.apply_discount(0.1)
print(f"书籍: {book.title}, 折扣后价格: {new_price}")
def test_file_operations():
"""测试文件操作"""
import os
# 创建测试文件
test_content = """这是测试文件
包含多行文本
用于演示文件操作"""
with open("test.txt", "w", encoding="utf-8") as f:f.write(test_content)# 读取并处理
with open("test.txt", "r", encoding="utf-8") as f:lines = f.readlines()print(f"文件有 {len(lines)} 行:")for i, line in enumerate(lines, 1):print(f" 行{i}: {line.strip()}")# 清理
os.remove("test.txt")
if name == "main":
main()