1. Python基础语法回顾与练习
Python作为一门简洁优雅的编程语言,其基础语法是每个开发者必须扎实掌握的根基。在本次练习中,我们将重点温习几个核心语法概念,并通过实际代码示例加深理解。
1.1 变量与数据类型
Python是动态类型语言,变量声明时无需指定类型。基础数据类型包括:
- 整型(int):如
age = 25 - 浮点型(float):如
price = 19.99 - 字符串(str):如
name = "Alice" - 布尔型(bool):如
is_valid = True
类型转换示例:
python复制num_str = "123"
num_int = int(num_str) # 字符串转整型
print(num_int + 1) # 输出124
1.2 控制流程语句
条件判断是编程中的基本结构:
python复制score = 85
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
else:
grade = 'C'
print(f"你的成绩等级是:{grade}")
循环结构示例:
python复制# for循环
for i in range(5): # 0到4
print(i**2)
# while循环
count = 0
while count < 3:
print(f"计数:{count}")
count += 1
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 函数定义与使用
函数是代码复用的基本单元,良好的函数设计能显著提升代码质量。
2.1 基础函数定义
python复制def greet(name, greeting="Hello"):
"""返回问候语
Args:
name: 要问候的人名
greeting: 问候语,默认为'Hello'
"""
return f"{greeting}, {name}!"
print(greet("Alice")) # 输出:Hello, Alice!
print(greet("Bob", "Hi")) # 输出:Hi, Bob!
2.2 参数传递方式
Python支持多种参数传递方式:
- 位置参数:
func(a, b) - 关键字参数:
func(a=1, b=2) - 默认参数:
def func(a=1) - 可变参数:
*args和**kwargs
python复制def print_info(name, *hobbies, **details):
print(f"姓名:{name}")
print("爱好:", hobbies)
print("详细信息:", details)
print_info("Alice", "阅读", "编程", age=25, city="北京")
3. 常用数据结构操作
Python内置了强大的数据结构,熟练掌握它们能极大提升编程效率。
3.1 列表(List)操作
python复制fruits = ['apple', 'banana', 'orange']
# 添加元素
fruits.append('pear')
# 插入元素
fruits.insert(1, 'grape')
# 删除元素
fruits.remove('banana')
# 列表推导式
squares = [x**2 for x in range(10) if x % 2 == 0]
3.2 字典(Dict)操作
python复制student = {
'name': 'Alice',
'age': 20,
'courses': ['Math', 'Physics']
}
# 访问元素
print(student.get('name', 'Unknown'))
# 添加/修改元素
student['grade'] = 'A'
# 遍历字典
for key, value in student.items():
print(f"{key}: {value}")
4. 文件操作与异常处理
实际项目中,文件操作和异常处理是必不可少的技能。
4.1 文件读写
python复制# 写入文件
with open('example.txt', 'w', encoding='utf-8') as f:
f.write("这是第一行\n")
f.write("这是第二行\n")
# 读取文件
with open('example.txt', 'r', encoding='utf-8') as f:
for line in f:
print(line.strip())
4.2 异常处理
python复制try:
result = 10 / 0
except ZeroDivisionError:
print("不能除以零!")
except Exception as e:
print(f"发生错误:{e}")
else:
print("计算成功")
finally:
print("执行结束")
5. 面向对象编程基础
Python全面支持面向对象编程范式,理解类和对象是进阶的关键。
5.1 类与对象
python复制class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
return f"我叫{self.name},今年{self.age}岁"
# 创建实例
p = Person("Alice", 25)
print(p.introduce())
5.2 继承与多态
python复制class Student(Person):
def __init__(self, name, age, student_id):
super().__init__(name, age)
self.student_id = student_id
def introduce(self):
return f"{super().introduce()},学号是{self.student_id}"
s = Student("Bob", 20, "2023001")
print(s.introduce())
6. 模块与包的使用
Python强大的生态系统很大程度上依赖于模块化设计。
6.1 导入模块
python复制# 导入整个模块
import math
print(math.sqrt(16))
# 导入特定函数
from random import randint
print(randint(1, 10))
# 使用别名
import numpy as np
6.2 创建自定义模块
创建一个calculator.py文件:
python复制def add(a, b):
return a + b
def subtract(a, b):
return a - b
在其他文件中使用:
python复制import calculator
print(calculator.add(5, 3))
7. 实用标准库介绍
Python标准库提供了丰富的功能,无需安装第三方包即可使用。
7.1 datetime模块
python复制from datetime import datetime, timedelta
now = datetime.now()
print(f"当前时间:{now.strftime('%Y-%m-%d %H:%M:%S')}")
tomorrow = now + timedelta(days=1)
print(f"明天此时:{tomorrow}")
7.2 collections模块
python复制from collections import defaultdict, Counter
# 默认字典
word_counts = defaultdict(int)
for word in ['apple', 'banana', 'apple']:
word_counts[word] += 1
# 计数器
colors = ['red', 'blue', 'red', 'green']
color_counts = Counter(colors)
print(color_counts.most_common(1)) # 输出出现次数最多的颜色
8. 综合练习项目
为了巩固所学知识,我们来实现一个简单的学生成绩管理系统。
8.1 系统功能设计
python复制class StudentManager:
def __init__(self):
self.students = []
def add_student(self, name, score):
self.students.append({'name': name, 'score': score})
def get_average(self):
if not self.students:
return 0
return sum(s['score'] for s in self.students) / len(self.students)
def get_top_student(self):
if not self.students:
return None
return max(self.students, key=lambda x: x['score'])
# 使用示例
manager = StudentManager()
manager.add_student("Alice", 90)
manager.add_student("Bob", 85)
print(f"平均分:{manager.get_average()}")
print(f"最高分学生:{manager.get_top_student()['name']}")
8.2 扩展功能实现
python复制def save_to_file(manager, filename):
with open(filename, 'w') as f:
for student in manager.students:
f.write(f"{student['name']},{student['score']}\n")
def load_from_file(manager, filename):
try:
with open(filename) as f:
for line in f:
name, score = line.strip().split(',')
manager.add_student(name, int(score))
except FileNotFoundError:
print("文件不存在,将创建新文件")
# 使用示例
load_from_file(manager, "students.txt")
save_to_file(manager, "students_backup.txt")
9. 调试与性能优化技巧
编写代码只是第一步,调试和优化同样重要。
9.1 使用pdb调试
python复制import pdb
def divide(a, b):
pdb.set_trace() # 设置断点
return a / b
result = divide(10, 2)
调试命令:
n(next):执行下一行c(continue):继续执行直到下一个断点p(print):打印变量值q(quit):退出调试
9.2 性能优化建议
-
使用列表推导式代替循环
python复制# 不推荐 squares = [] for x in range(10): squares.append(x**2) # 推荐 squares = [x**2 for x in range(10)] -
使用生成器处理大数据
python复制# 不推荐 def get_numbers(n): result = [] for i in range(n): result.append(i) return result # 推荐 def get_numbers(n): for i in range(n): yield i -
使用
join连接字符串python复制# 不推荐 s = "" for word in words: s += word # 推荐 s = "".join(words)
10. 下一步学习建议
掌握了这些基础内容后,可以考虑向以下方向深入:
- Web开发:学习Flask或Django框架
- 数据分析:掌握pandas和numpy库
- 机器学习:从scikit-learn开始
- 自动化脚本:学习os和sys模块的高级用法
- 并发编程:理解多线程和多进程
每个Python开发者都应该养成阅读优秀开源代码的习惯,这是提升编程能力的最佳途径之一。
