Python - While 循环:初学者指南

你好,有抱负的 Python 程序员!今天,我们将深入探讨精彩的 while 循环世界。作为你友好的邻居计算机老师,我将一步一步地引导你完成这次旅程。所以,拿起你最喜欢的饮料,舒服地坐下来,让我们一起踏上这段激动人心的冒险吧!

Python - While Loops

什么是 While 循环?

在我们深入研究细节之前,让我们从基础开始。想象一下,你正在玩一个游戏,需要不断掷骰子直到得到六点。你不会提前知道需要掷多少次,对吧?这时候 while 循环就派上用场了!

在 Python 中,while 循环允许你重复执行一个代码块,只要某个条件为真。这就像告诉 Python:“嘿,继续这样做,直到我告诉你停下来!”

基本语法

下面是一个 while 循环最简单的形式:

while 条件:
# 要执行的代码

很简单,不是吗?让我们来分解一下:

  1. while 关键字告诉 Python 我们要开始一个 while 循环。
  2. 条件 是一个布尔表达式,它决定了循环应该继续还是停止。
  3. 缩进的代码块是只要条件为真就会反复执行的代码。

一个简单的例子

让我们通过我们的掷骰子游戏来实践一下:

import random

roll = 0
while roll != 6:
roll = random.randint(1, 6)
print(f"你掷出了 {roll}")

print("恭喜!你掷出了 6!")

在这个例子中:

  • 我们导入 random 模块来生成随机数。
  • 我们将 roll 初始化为 0。
  • while 循环继续,只要 roll 不等于 6。
  • 在循环内,我们生成一个 1 到 6 之间的随机数并打印它。
  • 一旦我们掷出 6,循环结束,并打印一条祝贺信息。

多次运行此代码,你会发现每次可能需要掷不同的次数。这就是 while 循环的美妙之处——它们非常适合于你不知道需要多少次迭代的情况。

Python 无限 While 循环

现在,让我们来谈谈一些有点危险但很刺激的事情——无限循环。这就像打开一包你最喜欢的薯片;一旦开始,就很难停下来!

无限循环是一个永远不会结束的 while 循环,因为它的条件总是为真。虽然这听起来像是一场灾难的配方,但在编程中实际上有一些合理的用途。

下面是一个简单的例子:

while True:
print("这是一个无限循环!")

这个循环将永远打印 "这是一个无限循环!" ...或者至少在你手动停止程序之前(通常是通过按 Ctrl+C)。

一个更实用的例子

让我们创建一个简单的计算器,它将一直运行,直到用户决定退出:

while True:
print("\n简单计算器")
print("1. 加法")
print("2. 减法")
print("3. 退出")

choice = input("输入你的选择(1-3):")

if choice == '3':
print("感谢使用计算器。再见!")
break
elif choice in ('1', '2'):
num1 = float(input("输入第一个数字:"))
num2 = float(input("输入第二个数字:"))

if choice == '1':
print(f"结果:{num1 + num2}")
else:
print(f"结果:{num1 - num2}")
else:
print("无效输入。请重试。")

在这个例子中:

  • 我们使用无限循环来保持计算器的运行。
  • 用户可以选择加法、减法或退出。
  • 如果用户选择退出(选项 3),我们使用 break 语句退出循环。
  • 对于选项 1 和 2,我们执行计算并显示结果。
  • 如果用户输入无效选项,我们显示错误消息,循环继续。

这是一个展示无限循环如何在实际程序中使用的绝佳例子!

Python while-else 循环

现在,让我们探讨 Python while 循环的一个独特特性——else 子句。这就像在循环正常结束时有一个备份计划。

语法如下:

while 条件:
# 条件为真时执行的代码
else:
# 循环条件变为假时执行的代码

当 while 循环的条件变为假时,else 块被执行。然而,如果循环被 break 语句终止,else 块将被跳过。

示例:查找一个数字

让我们使用 while-else 循环在列表中搜索一个数字:

numbers = [1, 3, 5, 7, 9, 11, 13, 15]
target = 10
index = 0

while index < len(numbers):
if numbers[index] == target:
print(f"找到 {target} 在索引 {index}")
break
index += 1
else:
print(f"{target} 在列表中未找到")

在这个例子中:

  • 我们遍历数字列表。
  • 如果我们找到目标,我们打印其位置并中断循环。
  • 如果我们没有找到目标并且循环正常完成,则执行 else 块。

这在你想要仅在循环完成而没有找到它正在寻找的内容时执行操作特别有用。

单语句套件

有时,你的 while 循环可能非常简单,只需要一行代码。在这种情况下,Python 允许你一次性写完。这就像是编程中的微波炉餐——快速方便!

以下是语法:

while 条件: 语句

让我们看一个例子:

count = 5
while count > 0: print(count); count -= 1

这个紧凑的循环将打印从 5 到 1 的数字。

但是,请注意:虽然单行循环很方便,但如果过度使用,它们也可能使你的代码难以阅读。通常,优先考虑可读性比简洁性更好,特别是当你还在学习的时候。

结论

恭喜!你刚刚完成了 Python while 循环的快速之旅。从基本循环到无限循环,while-else 构造,甚至单行循环,你现在有了这个基本编程概念坚实的基础。

记住,熟能生巧。尝试创建自己的 while 循环,实验不同的条件,看看你能构建什么。谁知道呢?你的下一个项目可能会成为编程世界中的下一个大事件!

快乐编程,愿你的循环总是能在你希望的时候终止!

方法 描述 示例
基本while循环 当条件为真时执行代码块 while count > 0: print(count); count -= 1
无限while循环 除非手动停止或遇到break条件,否则一直继续 while True: print("这是无限的!")
while-else循环 当while条件变为假时执行else块 while 条件: ... else: ...
单语句while循环 当条件为真时执行单个语句 while count > 0: print(count); count -= 1
break语句 提前退出循环 while True: if 条件: break
continue语句 跳过当前迭代的剩余部分并移动到下一个 while True: if 条件: continue

Credits: Image by storyset