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}")
pass 和 for-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} 是一个质数")