Python - 循环:高效编程的门户

你好,有抱负的程序员们!今天,我们将深入探讨 Python 中最强大的概念之一:循环。作为你友好的计算机科学老师,我很兴奋能引导你完成这次学习之旅。相信我,一旦你掌握了循环,你会感觉自己仿佛在编码中解锁了超能力!

Python - Loops

什么是循环,我们为什么需要它们?

想象一下,你被分配编写一个程序,打印 "Hello, World!" 100 次。如果没有循环,你就必须写100次相同的代码!这不仅仅是单调乏味,而且效率低下。这时,循环就来拯救我们了。

循环允许我们重复执行一个代码块。它们就像你代码中的旋转木马,不停地旋转,直到满足某个条件。

循环流程图

在我们深入代码之前,先来可视化一下循环是如何工作的:

[开始]
|
v
[初始化计数器]
|
v
[检查条件]
|
[True] [False]
|      |
v      v
[执行代码] [退出循环]
|
v
[更新计数器]
|
'--------^

这个流程图代表了大多数循环的基本结构。我们首先设置一个计数器,检查一个条件,如果条件为真则执行一些代码,更新我们的计数器,然后再次检查条件。这个循环继续进行,直到条件变为假。

Python 中的循环类型

Python 为我们提供了两种主要的循环类型:for 循环和 while 循环。让我们通过一些有趣的例子来探索它们!

1. For 循环

当我们提前知道要执行代码块多少次时,使用 for 循环。这就像告诉你的代码,“做这件事X次。”

基本语法:

for item in sequence:
# 要执行的代码

示例 1:数羊

for sheep in range(5):
print(f"正在数第 {sheep + 1} 只羊")

# 输出:
# 正在数第 1 只羊
# 正在数第 2 只羊
# 正在数第 3 只羊
# 正在数第 4 只羊
# 正在数第 5 只羊

在这个例子中,我们使用 for 循环来数羊。range(5) 函数创建一个从0到4的数字序列,我们的循环遍历这些数字。我们在打印时给 sheep 加1,因为 range(5) 从0开始,但我们想从1开始数。

示例 2:遍历列表

fruits = ["苹果", "香蕉", "樱桃"]
for fruit in fruits:
print(f"我喜欢吃 {fruit}!")

# 输出:
# 我喜欢吃 苹果!
# 我喜欢吃 香蕉!
# 我喜欢吃 樱桃!

在这里,我们遍历一个水果列表。对于列表中的每个水果,我们打印一个关于喜欢食用该水果的声明。注意 Python 如何在每次迭代中自动将列表中的每个项目分配给变量 fruit

2. While 循环

当我们想在一个条件为真的情况下重复执行一个代码块时,使用 while 循环。这就像说,“继续这样做,直到我告诉你停止。”

基本语法:

while condition:
# 要执行的代码

示例 3:不耐烦的服务员

order_ready = False
waiting_time = 0

while not order_ready:
waiting_time += 1
print(f"已经等待 {waiting_time} 分钟...")
if waiting_time >= 5:
order_ready = True

print("订单准备好了!")

# 输出:
# 已经等待 1 分钟...
# 已经等待 2 分钟...
# 已经等待 3 分钟...
# 已经等待 4 分钟...
# 已经等待 5 分钟...
# 订单准备好了!

在这个例子中,我们模拟在餐厅等待订单。只要 order_readyFalse,循环就会继续。每次迭代都会增加 waiting_time 1分钟。一旦我们等待了5分钟,我们将 order_ready 设置为 True,从而结束循环。

Python 循环控制语句

有时,我们需要对循环有更多的控制。Python 为我们提供了三个循环控制语句:

语句 描述
break 提前退出循环
continue 跳过当前迭代的剩余部分,进入下一次迭代
pass 不做任何事,作为占位符

让我们看看这些是如何工作的!

示例 4:改掉坏习惯

bad_habits = ["拖延", "赖床", "垃圾食品", "看太多电视"]
days_clean = 0

for habit in bad_habits:
if habit == "垃圾食品":
print(f"我无法抗拒 {habit}!打破纪录。")
break
days_clean += 1
print(f"我已经避免了 {habit} {days_clean} 天!")

print(f"保持好习惯的总天数:{days_clean}")

# 输出:
# 我已经避免了 拖延 1 天!
# 我已经避免了 赖床 2 天!
# 我无法抗拒 垃圾食品!打破纪录。
# 保持好习惯的总天数:2

在这个例子中,我们使用 break 语句在遇到 "垃圾食品" 时退出循环,这模拟了打破一系列好习惯的纪录。

示例 5:跳过蔬菜

foods = ["披萨", "西兰花", "汉堡", "菠菜", "冰淇淋"]

print("妈妈说我必须吃完盘子里的所有东西,但是...")
for food in foods:
if food in ["西兰花", "菠菜"]:
print(f"哎呀!我不小心把 {food} 弄掉在地上了!")
continue
print(f"好吃!我正在吃 {food}!")

# 输出:
# 妈妈说我必须吃完盘子里的所有东西,但是...
# 好吃!我正在吃 披萨!
# 哎呀!我不小心把 西兰花 弄掉在地上了!
# 好吃!我正在吃 汉堡!
# 哎呀!我不小心把 菠菜 弄掉在地上了!
# 好吃!我正在吃 冰淇淋!

在这里,我们使用 continue 跳过食物列表中的蔬菜。当我们遇到西兰花或菠菜时,我们打印一个借口,然后继续下一次迭代。

结论

恭喜你!你已经在 Python 学习之旅中迈出了巨大的一步,掌握了循环。记住,熟能生巧,所以不要犹豫,尝试这些概念。尝试创建自己的循环,混合和匹配不同的类型,看看你能创造出什么。

循环就像歌曲中的节拍——它们让你的代码保持运动和节奏。所以继续编码,继续循环,最重要的是,继续享受乐趣!

祝编码愉快,未来的 Python 大师们!

Credits: Image by storyset