Skip to content

03 控制流

Exercise: - https://www.luogu.com.cn/problem/P5718

输入数据

使用 split() 快速输入多个数据

while、break 和 continue

while 循环

while 循环是一种控制结构,用于反复执行一段代码,只要给定的条件为 True

  • 核心思想:只要条件成立,代码块就会一直执行,直到条件变为 False
  • 例子:假设我们要不断倒数一个数字直到达到 0,可以用 while 循环来实现。

例子

countdown = 5

while countdown > 0:
    print(countdown)
    countdown -= 1

print("倒计时结束!")

在这个例子中,while 循环不断检查条件 countdown > 0,每次循环打印当前倒数值,直到 countdown 变为 0,循环结束。

break

  • 场景:你在自动取款机前输入提款金额,我们可以设定一个条件来在成功取款后立刻停止继续请求用户输入。
  • 目的:在满足某个条件时,中断循环,结束程序的进一步执行。

示例

balance = 5000

while True:
    withdrawal_amount = int(input("请输入取款金额:"))

    if withdrawal_amount > balance:
        print("余额不足,无法完成此次取款。")
    elif withdrawal_amount <= 0:
        print("取款金额必须大于零。")
    else:
        balance -= withdrawal_amount
        print(f"取款成功!您的余额为:{balance}元")
        break  # 成功取款后退出循环

print("感谢使用本ATM系统")

continue

  • 场景:我们希望循环检查一系列数字,并对奇数和偶数进行不同的处理。
  • 目的:跳过当前循环的剩余代码,直接进入下一次循环。

示例

for num in range(2, 10):
    if num % 2 == 0:
        print(f"找到偶数 {num}")
        continue  # 如果是偶数,就不再执行下面的代码,直接进入下一次循环
    print(f"找到奇数 {num}")
  • 教学提示continue 使得程序跳过后续操作,直接进入下一次迭代。比如,当 num 为偶数时,跳过打印奇数的代码。

2. 字典的教学

字典是 Python 中非常重要的数据类型,用于存储键-值对。

  • 类比:字典就像是一部电话号码簿。你通过联系人名字(键)可以快速找到他们的电话号码(值)。或者你可以把字典想象成一个身份信息表,每个人(键)对应不同的信息(值)。

字典的基本操作

例子

# 创建一个字典
student = {
    "name": "小明",
    "age": 15,
    "grade": "九年级"
}

# 访问字典中的值
print(student["name"])  # 输出:小明

# 修改字典中的值
student["age"] = 16

# 添加新的键值对
student["hobby"] = "打篮球"

# 删除键值对
del student["grade"]

# 遍历字典
for key, value in student.items():
    print(f"{key}: {value}")

passfor-else

pass 的教学

  • 概念pass 是一个占位符。当你写代码时,有时候并不确定具体要实现的逻辑,但需要保证代码的结构是完整的,这时可以用 pass 来占位。

示例

for i in range(5):
    if i == 3:
        pass  # 暂时不做处理,代码结构完整,后续再补充逻辑
    else:
        print(i)

for-else

  • 概念for-else 结构在 Python 中相对特殊,else 会在 for 循环正常结束时执行。关键在于理解这个 else 是“循环没有被打断时才执行”。

示例

for num in range(2, 10):
    for i in range(2, num):
        if num % i == 0:
            print(f"{num} 等于 {i} * {num // i}")
            break
    else:
        # 只有当没有找到因数时,才能认为这个数字是质数
        print(f"{num} 是一个质数")