Python 期末考试重点: 知识讲解 + 示例代码 + 讲解
第四章:字符串的格式化方法
Python 中常用的三种字符串格式化方式:
1. 百分号格式化(%)
语法
"%格式说明符" % (值)
示例
name = "Tom"
score = 95
print("姓名:%s,成绩:%d 分" % (name, score))
讲解
%s→ 字符串%d→ 整数%f→ 浮点数(默认 6 位小数)- 用法接近 C 语言,适合简单场景。
2. str.format() 方法
语法
"{} {}".format(a, b)
示例
name = "Lily"
age = 18
print("姓名:{},年龄:{}".format(name, age))
print("姓名:{0},年龄:{1}".format(name, age))
讲解
{}是占位符,可以带编号或变量名- 可读性比
%更强。
3. f-string(推荐)
语法
f"...{变量}..."
示例
name = "Mark"
height = 1.82
print(f"{name} 的身高是 {height:.1f} 米")
讲解
- Python 3.6+ 强烈推荐使用
{height:.1f}→ 保留 1 位小数- 支持表达式:
f"{3+5}"
第八章:断言的用法和功能
1. 什么是断言(assert)?
定义
assert 用来检查条件是否为真,如果为假,会抛出 AssertionError,用于调试程序。
示例 1:简单断言
x = 10
assert x > 0
print("x 是正数")
示例 2:断言失败的情况
age = -1
assert age >= 0, "年龄不能为负数"
运行会报错:
AssertionError: 年龄不能为负数
讲解
assert 条件, "错误提示"- 常用于检查函数输入是否合法
- 在实际产品环境常关闭,但在调试时非常有用。
小练习
写一个开平方函数,要求输入必须是非负浮点数,否则断言失败并给出提示。
第五章:函数
1. 函数参数的类型(必须掌握)
(1) 位置参数
def add(a, b):
return a + b
print(add(3, 5))
(2) 默认参数
def greet(name="Tom"):
print("Hello", name)
greet()
greet("Alice")
(3) 可变参数:*args
def total(*nums):
return sum(nums)
print(total(1, 2, 3, 4))
(4) 关键字可变参数:**kwargs
def show_info(**info):
for k, v in info.items():
print(k, ":", v)
show_info(name="Tom", age=20)
函数参数的类型(位置、默认、关键字、可变)
def demo(a, b=10, *args, **kwargs):
"""
a : 位置参数
b=10 : 默认参数
*args : 可变位置参数(元组)
**kwargs: 可变关键字参数(字典)
"""
print("a=", a, "b=", b)
print("args=", args)
print("kwargs=", kwargs)
# 调用
demo(1) # a=1 b=10
demo(1, 2) # a=1 b=2
demo(1, 2, 3, 4) # args=(3,4)
demo(1, 2, 3, x=5, y=6) # args=(3,) kwargs={'x':5,'y':6}
易错点
- 默认参数不要用可变对象(列表/字典),否则会出现“记忆”现象。
错误示例:def add(item, lst=[]): ...
正确写法:def add(item, lst=None): if lst is None: lst = []
2. 列表推导式(List Comprehension)(非常重要)
语法
[表达式 for 变量 in 可迭代对象 if 条件]
示例
squares = [x*x for x in range(1, 6)]
print(squares)
带条件:
evens = [x for x in range(10) if x % 2 == 0]
print(evens)
一行生成列表,比 for 循环快、可读性好。
# 需求:0~9 的平方,且只保留偶数的平方
squares = [x*x for x in range(10) if x % 2 == 0]
print(squares) # [0, 4, 16, 36, 64]
# 嵌套:把两个列表拼接成字符串
colors = ["红", "蓝"]
sizes = ["S", "M", "L"]
tshirts = [f"{c}-{s}" for c in colors for s in sizes]
print(tshirts)
# ['红-S', '红-M', '红-L', '蓝-S', '蓝-M', '蓝-L']
3. 会定义和调用函数(结合书例 5-1 ~ 5-4)
例 5-1:基本函数
def area(r):
return 3.14 * r * r
print(area(3))
例 5-2:带默认值的参数
def power(x, n=2):
return x ** n
print(power(3)) # 平方
print(power(3, 3)) # 立方
例 5-3:使用可变参数
def avg(*nums):
return sum(nums) / len(nums)
print(avg(1, 2, 3, 4))
例 5-4:关键字参数
def introduce(name, **info):
print("姓名:", name)
for key, value in info.items():
print(key, value)
introduce("Tom", age=18, city="Beijing")
4. 函数的递归调用(重点)
示例:递归求阶乘
def fact(n):
if n == 1:
return 1
return n * fact(n - 1)
print(fact(5))
讲解
- “调用自己”
- 必须有终止条件
第六章:类(Class)
1. 定义类(例 6.1.3 – 6.1.4)
最基本的类
class Person:
pass
2. 定义实例属性
示例
class Person:
def __init__(self, name, age):
self.name = name # 实例属性
self.age = age
p = Person("Tom", 18)
print(p.name, p.age)
3. 定义实例方法
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say(self): # 实例方法
print(f"我的名字是 {self.name},我今年 {self.age} 岁")
p = Person("Alice", 20)
p.say()
4. 类的更多例子(6.1.3 – 6.1.4 示意)
例:矩形类
class Rectangle:
def __init__(self, w, h):
self.w = w
self.h = h
def area(self):
return self.w * self.h
r = Rectangle(3, 4)
print("面积:", r.area())
6.1.3 定义类、实例属性、实例方法(结合书例)
class Dog:
# 构造方法:创建实例时自动调用
def __init__(self, name, age):
# 实例属性
self.name = name
self.age = age
# 实例方法:第一个参数必须是 self
def bark(self):
print(f"{self.name} 汪汪叫!")
def human_age(self):
# 狗年龄转人类年龄,简易 1:7
return self.age * 7
# 创建对象
dog1 = Dog("旺财", 3)
dog1.bark()
print(f"它相当于人类{dog1.human_age()}岁")
6.1.4 类属性与类方法(拓展,书上也讲)
class Student:
# 类属性:所有实例共享
school = "北京大学"
def __init__(self, name):
self.name = name
# 类方法:第一个参数是 cls
@classmethod
def change_school(cls, new_school):
cls.school = new_school
print(Student.school) # 北京大学
Student.change_school("清华")
print(Student.school) # 清华
易错点
- 实例方法忘记写
self,运行时报TypeError: method() takes 0 positional arguments... - 类名一般大写驼峰,实例小写;不要混用。
小练习
写一个 Rectangle 类:
- 构造方法接收宽、高;
- 提供实例方法
area()计算面积; - 提供类方法
square(cls, side)快速创建正方形实例; - 创建 rect1(3,4) 与 sq1(5) 并分别打印面积。
—— 总结
| 章节 | 要点 | 示例 |
|---|---|---|
| 字符串格式化 | %、format、f-string | f"{x:.2f}" |
| 断言 | assert 条件 |
assert age>0 |
| 函数参数 | 位置、默认、*args、**kwargs | 四种写法示例 |
| 列表推导式 | [x for x in list if ...] |
生成平方数 |
| 递归 | 必须有终止条件 | 阶乘 |
| 类 | __init__、实例属性、方法 |
Person、Rectangle |

浙公网安备 33010602011771号