Python while循环

Python 是一种广泛应用于应用开发、Web 开发和数据分析的面向对象编程语言。它之所以成为目前最流行的编程语言之一,部分原因在于它是免费且开源的,拥有庞大的标准库,并且可以轻松地与其他编程语言集成。Python 支持三种主要类型的循环:

  • while 循环
  • for 循环
  • 嵌套循环

本文将重点介绍 Python 编程中的基本循环语句之一——while 循环。我们将探讨 while 循环的基本概念,以及如何结合 break 语句、continue 语句和 else 子句来增强循环的功能。最后,我们会通过一个练习来巩固对 Python while 循环的理解。

什么是Python while 循环

while 循环是一种控制结构,用于重复执行一段代码,直到指定的条件不再满足为止。与 for 循环不同,while 循环适用于事先不知道需要迭代多少次的情况。

语法

下面是 Python while 循环的基本语法:

while expression:
    statement(s)
  • expression:这是一个布尔表达式,用于判断循环是否应该继续执行。如果表达式的结果为 True,则执行循环体内的语句;如果结果为 False,则停止循环。
  • statement(s):这是循环体,即当 expressionTrue 时将反复执行的一段或多段代码。

流程图

一个简单的 while 循环流程图如下所示:

+------------------+
|  初始化变量       |
+------------------+
          |
          v
+------------------+
|  检查条件         |
|  (expression)     |
+------------------+
          |
   +------v------+
   |      |      |
   |  False     True
   |      |      |
   v      v      v
退出循环  +------------------+
           |  执行循环体        |
           |  (statement(s))    |
           +------------------+
                  |
                  v
+------------------+
|  返回检查条件     |
+------------------+

这个流程图显示了 while 循环的工作原理:首先初始化一些变量,然后检查条件是否为真。如果是,则执行循环体内的代码,并再次检查条件。这一过程会持续进行,直到条件变为假,此时循环结束。

示例

下面是一个使用 while 循环的简单示例,该示例计算从1加到100的总和:

# 初始化计数器和累加器
counter = 1
total_sum = 0

# 当计数器小于等于100时,执行循环
while counter <= 100:
    total_sum += counter  # 将当前计数器的值加到总和上
    counter += 1  # 计数器递增

# 输出最终结果
print("The sum from 1 to 100 is:", total_sum)

在这个例子中,循环会一直运行,直到 counter 的值超过100,此时条件变为 False,循环终止。

break 语句在 while 循环中的用法

break 语句可以在循环体内部使用,当某个特定条件满足时,break 会立刻结束整个循环,即使循环的条件仍然为真。

示例代码
# 初始化变量以存储当前数字
num = 1

# 遍历数字,直到找到第一个偶数
while True:
    if num % 2 == 0:
        print("First even number found:", num)
        break  # 如果找到了偶数,则退出循环
    num += 1  # 如果当前数字不是偶数,则增加1后继续循环
解释
  • 初始化变量num 被初始化为1,作为寻找偶数的起始点。
  • 无限循环while True: 创建了一个无限循环,意味着循环将持续执行,除非遇到 break 语句。
  • 条件检查:在循环体内,我们检查 num 是否能被2整除(即是否为偶数)。如果 num 是偶数,程序会打印出找到的第一个偶数,并使用 break 语句跳出循环。
  • 递增操作:如果 num 不是偶数,num 的值将增加1,然后循环会再次检查新的 num 值,直到找到一个偶数。

这个例子展示了如何使用 break 语句来控制循环的提前终止,这在处理不确定循环次数的问题时非常有用。

continue 语句在 while 循环中的用法

continue 语句用于跳过当前循环体中剩余的代码,并立即开始下一次迭代。这对于在某些条件下跳过特定操作非常有用。

示例代码
# 初始化变量以存储当前数字
num = 1

# 遍历数字并只打印偶数
while num <= 10:
    if num % 2 != 0:
        num += 1
        continue  # 如果 num 是奇数,跳过剩余的循环体并进入下一次迭代
    print(num)
    num += 1
解释
  • 初始化变量num 被初始化为1,作为遍历的起始点。
  • 循环条件while num <= 10: 设置了循环的条件,即当 num 小于或等于10时,循环将继续执行。
  • 条件检查:在循环体内,我们使用 if num % 2 != 0: 来检查 num 是否为奇数。如果是奇数:
    • num += 1:将 num 增加1。
    • continue:跳过当前迭代的剩余部分,直接进入下一次迭代。
  • 打印偶数:如果 num 是偶数,程序会打印 num 的值,然后 num 增加1,继续下一次迭代。
输出结果

这个循环将输出1到10之间的所有偶数,跳过所有的奇数。具体输出如下:

2
4
6
8
10

while 循环与 else 子句

在 Python 中,while 循环可以有一个可选的 else 子句。如果循环因为条件不再满足而自然结束,else 子句中的代码会被执行。但是,如果循环因为 break 语句而提前退出,else 子句将不会被执行。

示例代码
# 初始化变量
count = 0

# 遍历数字
while count < 5:
    print("Inside the loop:", count)
    count += 1
else:
    print("Loop completed without encountering a break statement.")
解释
  • 初始化变量count 被初始化为0,作为循环的起始点。
  • 循环条件while count < 5: 设置了循环的条件,即当 count 小于5时,循环将继续执行。
  • 循环体:在循环体内,程序会打印当前的 count 值,然后将 count 增加1。
  • else 子句:如果循环自然结束(即 count 达到5,循环条件不再满足),else 子句中的代码将被执行,打印一条消息表示循环已完成且未遇到 break 语句。
输出结果

这个循环将输出以下内容:

Inside the loop: 0
Inside the loop: 1
Inside the loop: 2
Inside the loop: 3
Inside the loop: 4
Loop completed without encountering a break statement.

示例:带 break 语句的 while 循环

为了更好地理解 else 子句的行为,我们可以看一个带有 break 语句的例子:

# 初始化变量
count = 0

# 遍历数字
while count < 5:
    print("Inside the loop:", count)
    if count == 3:
        break  # 提前退出循环
    count += 1
else:
    print("Loop completed without encountering a break statement.")
解释
  • 初始化变量count 被初始化为0。
  • 循环条件while count < 5: 设置了循环的条件。
  • 循环体:在循环体内,程序会打印当前的 count 值。如果 count 等于3,break 语句会提前退出循环。
  • else 子句:由于循环在 count 等于3时提前退出,else 子句中的代码不会被执行。
输出结果

这个循环将输出以下内容:

Inside the loop: 0
Inside the loop: 1
Inside the loop: 2
Inside the loop: 3

结束 while 循环

在 Python 中,有几种方法可以结束 while 循环:

  1. 使用 break 语句:当某个特定条件满足时,break 语句会立即终止循环。
  2. 条件不再满足:当 while 循环的条件不再为 True 时,循环自然结束。
  3. 使用 return 语句:如果 while 循环位于一个函数中,return 语句会终止循环并返回函数的结果。
示例:使用 break 语句结束 while 循环
count = 0
while True:
    print(count)
    count += 1
    if count >= 5:
        break  # 如果 count 大于或等于 5,结束循环
解释
  • 初始化变量count 被初始化为0。
  • 无限循环while True: 创建了一个无限循环,这意味着循环会一直执行,直到遇到 break 语句。
  • 循环体:在每次迭代中,程序会打印当前的 count 值,并将 count 增加1。
  • 条件检查:如果 count 大于或等于5,break 语句会被执行,从而终止循环。
输出结果

这个循环将输出以下内容:

0
1
2
3
4

另一个示例:自然结束 while 循环

除了使用 break 语句,你也可以让 while 循环在条件不再满足时自然结束。

count = 0
while count < 5:
    print(count)
    count += 1
解释
  • 初始化变量count 被初始化为0。
  • 循环条件while count < 5: 设置了循环的条件,即当 count 小于5时,循环将继续执行。
  • 循环体:在每次迭代中,程序会打印当前的 count 值,并将 count 增加1。
  • 自然结束:当 count 达到5时,条件 count < 5 不再为 True,循环自然结束。
输出结果

这个循环将输出以下内容:

0
1
2
3
4

While 循环常见问题

1. 什么是 Python 中的 do-while 循环?请举个例子。

Python 本身并没有像其他一些编程语言(如 C、C++ 或 Java)那样的内置 do-while 循环。然而,你可以通过使用 while 循环和 break 语句来模拟 do-while 循环的行为。do-while 循环的特点是循环体至少执行一次,然后再检查条件。

示例
# 模拟 do-while 循环
count = 0
while True:
    print(count)
    count += 1
    if count >= 5:
        break
解释
  • 初始化变量count 被初始化为0。
  • 无限循环while True: 创建了一个无限循环。
  • 循环体:在每次迭代中,程序会打印当前的 count 值,并将 count 增加1。
  • 条件检查:如果 count 大于或等于5,break 语句会被执行,从而终止循环。

这个循环至少会执行一次,然后在每次迭代后检查 count 是否大于或等于5,类似于 do-while 循环的行为。

2. 什么是 while 循环?

while 循环是一种控制流语句,允许基于给定条件重复执行代码块。只要条件为真,循环就会继续执行代码块。一旦条件变为假,循环终止。

语法
while condition:
    # 要执行的代码块

3. while 循环和 for 循环有什么区别?

  • while 循环

    • 用途:当条件为真时,重复执行代码块。
    • 特点:适用于事先不知道迭代次数的情况。
    • 示例
      count = 0
      while count < 5:
          print(count)
          count += 1
      
  • for 循环

    • 用途:遍历序列(如列表、元组、字符串等)或其他可迭代对象。
    • 特点:适用于已知迭代次数或需要遍历集合中的元素的情况。
    • 示例
      for i in range(5):
          print(i)
      

4. 如何在 Python 中重启 while 循环?

你可以使用 continue 语句来重启 while 循环。当 continue 语句在循环中遇到时,当前迭代的剩余部分会被跳过,直接开始下一次迭代。

示例
count = 0
while count < 5:
    count += 1
    if count == 3:
        continue  # 当 count 为 3 时,跳过本次迭代的剩余部分,重新开始下一次迭代
    print(count)
解释
  • 初始化变量count 被初始化为0。
  • 循环条件while count < 5: 设置了循环的条件。
  • 循环体:在每次迭代中,count 增加1。
  • 条件检查:如果 count 等于3,continue 语句会被执行,跳过本次迭代的剩余部分(即 print(count)),直接开始下一次迭代。
输出结果

这个循环将输出以下内容:

1
2
4
5

注意,当 count 为3时,print(count) 被跳过,因此3没有被打印出来。

希望这些解释和示例能帮助你更好地理解 Python 中的 while 循环及其相关概念!

练习题

问题描述

编写一个程序,使用 while 循环来累加所有小于10的数字。

解决方案

代码
# 初始化变量
total = 0
num = 1

# 遍历小于10的数字并将它们累加到 total 中
while num < 10:
    total += num
    num += 1

# 打印总和
print("The sum of all numbers less than 10:", total)
解释
  1. 初始化变量

    • total 被初始化为0,用于存储累加的总和。
    • num 被初始化为1,作为累加的起始数字。
  2. 循环条件

    • while num < 10: 设置了循环的条件,即当 num 小于10时,循环将继续执行。
  3. 循环体

    • total += num:将当前的 num 值加到 total 上。
    • num += 1:将 num 增加1,以便在下一次迭代中处理下一个数字。
  4. 打印结果

    • print("The sum of all numbers less than 10:", total):在循环结束后,打印累加的总和。
输出结果

这个程序将输出以下内容:

The sum of all numbers less than 10: 45
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值