← Python 学习路线(共 8 章)

第 4 章 流程控制与函数

red wenzi · 2026-09-15 · 编程语言 · Python · 📖 预计阅读 7 分钟 · 共 2 道练习
🎯 本章你会学到:for/while 的 Python 式写法、默认参数、多返回值与作用域。建议边读边敲,每节练习先自己做,再展开答案对照。

Python 的循环写起来更像自然语言:for x in 序列 直接遍历元素,需要下标就用 enumerate,需要并行遍历就用 zip

enumerate / zip / range
for i, name in enumerate(["Ann", "Bob"], start=1):
    print(i, name)

for name, score in zip(["Ann", "Bob"], [90, 85]):
    print(f"{name}={score}")

total = 0
for x in range(1, 101):
    total += x
print("sum:", total)
运行结果
1 Ann
2 Bob
Ann=90
Bob=85
sum: 5050

函数:默认参数与多返回值

函数的常用写法
def describe(name, score=0, *, extra=""):
    return f"{name}: {score}{extra}"

print(describe("Ann", 90))
print(describe("Bob"))
print(describe("Cid", 88, extra=" (bonus)"))

def stats(nums):
    return min(nums), max(nums), sum(nums) / len(nums)

lo, hi, avg = stats([3, 1, 4, 1, 5])
print(lo, hi, f"{avg:.2f}")
运行结果
Ann: 90
Bob: 0
Cid: 88 (bonus)
1 5 2.80
⚠️ 易错点 不要在遍历列表的同时删除元素。要么遍历副本,要么生成新列表([x for x in nums if 条件])。
⚠️ 易错点 range(5) 是 0~4,右端取不到——和切片一样是左闭右开,这个约定在 Python 里到处都是。

✍️ 本节练习

4.1必做判断质数

写函数 is_prime(n),读入 n(n ≥ 2),是质数输出 yes,否则 no

输入 一个整数 n。

输出 yesno

样例输入
17
样例输出
yes

💡 提示 试除到 √n 即可:while i * i <= n

✅ 查看参考答案与解析
def is_prime(n):
    if n < 2:
        return False
    i = 2
    while i * i <= n:
        if n % i == 0:
            return False
        i += 1
    return True

print("yes" if is_prime(int(input())) else "no")

解析 print("yes" if 条件 else "no") 是 Python 里的三元表达式,比 if/else 分支更紧凑。

4.2挑战统计函数

读入 n 个整数,输出最小值、最大值和平均值(保留 2 位小数)。

输入 第一行 n;第二行 n 个整数。

输出 三行:min=max=avg=

样例输入
6
5 3 9 1 7 4
样例输出
min=1
max=9
avg=4.83

💡 提示 min() / max() / sum() 都是内置函数,直接对列表用。

✅ 查看参考答案与解析
n = int(input())
nums = list(map(int, input().split()))

print(f"min={min(nums)}")
print(f"max={max(nums)}")
print(f"avg={sum(nums) / n:.2f}")

解析 Python 内置的 min/max/sum 都是 C 实现的,比手写循环快,也短。

📚 本文概念都在知识大全:

Python · pip 与虚拟环境 · 列表/字典/集合 · 推导式 · f-string · 异常处理 · dataclass · pandas · 模块与包