详解Python中while无限迭代循环方法

作者:Mr数据杨 时间:2022-08-17 12:53:48 

前言

Python 有 while 语句和 for 语句作为循环处理。虽然 for 语句具有一定数量的进程,但 while 语句是『直到满足条件』类型的循环进程。

对于无限迭代 while,循环执行的次数没有事先明确指定。相反,只要满足某些条件指定的块就会重复执行。

使用定义迭代 for,指定块将被执行的次数在循环开始时已经倍明确指定。

除了 while 语句的一般特性之外,Python 也有自己的规范,例如对 do while 语句的支持不足。循环处理是编程的基本语法。

while循环

详解Python中while无限迭代循环方法

while <布尔计算的表达式>:
    <执行的python语句> # 循环体

控制表达式 ,<布尔计算的表达式> 通常涉及一个或多个变量,这些变量在开始循环之前被初始化,然后在循环体的某处可能会被修改。

当 while 遇到循环时,首先在 Boolean context 中 <布尔计算的表达式> 进行评估。

n = 5
while n > 0:
   n -= 1
   print(n)

输出:

4
3
2
1
0

while 首先测试循环的控制表达式。假设开始就为假,则循环体将永远不会被执行。

n = 5
while n > 5:
   n -= 1
   print(n)

break语句 和 continue语句

while 循环的整个主体都在每次迭代中执行,Python 提供了两个过早终止循环迭代的关键字。

  • break 语句立即完全终止循环。程序执行继续到循环体之后的第一条语句。

  • continue 语句立即终止当前循环迭代。执行跳转到循环的顶部,并重新评估控制表达式以确定循环是再次执行还是终止。

详解Python中while无限迭代循环方法

# break 举例
n = 5
while n > 0:
   n -= 1
   if n == 2:
       break
   print(n)
print('循环结束。')

输出:

4
3
循环结束。

# continue 举例
n = 5
while n > 0:
   n -= 1
   if n == 2:
       continue
   print(n)
print('循环结束。')

输出:

4
3
1
0
循环结束。

else 子句

Python 允许在循环else结束时使用可选子句。

详解Python中while无限迭代循环方法

while <布尔计算的表达式>:
   <执行的python语句> # 循环体
else:
   <循环终止后执行语句>

n = 5
while n > 0:
   n -= 1
   print(n)
else:
   print('Loop done.')

输出:

4
3
2
1
0
Loop done.

# 如果有break某些情况下就不会倍执行
n = 5
while n > 0:
   n -= 1
   print(n)
   if n == 2:
       break
else:
   print('循环结束。')

输出:

4
3
2

无限循环

假设编写了一个while理论上永远不会结束的循环。

详解Python中while无限迭代循环方法

while True:
   print('真·三國無雙')

真·三國無雙
真·三國無雙
 .
 .
 .
真·三國無雙

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
KeyboardInterrupt

这样的循环只能手动停止。

单实际上也有它的应用,例如循环删除列表中的元素。

list_ = ['真·三國無雙', '真·三國無雙', '真·三國無雙']
while True:
   if not list_ :
       break
   print(list_ .pop(-1))

输出:

真&middot;三國無雙
真&middot;三國無雙
真&middot;三國無雙

可以 break 在循环中指定多个语句。可以通过 break 从几个不同的位置结束循环,而不必在循环头中指定所有终止条件。

while True:
    if <布尔计算的表达式1>:  # 条件判断1
        break
    
    if <布尔计算的表达式2>:  # 条件判断2
        break
    
    if <布尔计算的表达式3>:  # 条件判断3
        break

嵌套while循环

Python 控制结构可以相互嵌套。

if age < 18:
   if gender == 'M':
       print('子供')
   else:
       print('娘')
elif age >= 18 and age < 65:
   if gender == 'M':
       print('父親')
   else:
       print('母親')
else:
   if gender == 'M':
       print('おじいさん')
   else:
       print('祖母')

while循环可以包含在另一个while循环中。

list_ = ['父親', '母親']
while len(list_ ):
   print(list_.pop(0))
   list__ = ['おじいさん', '祖母']
   while len(list__ ):
       print('>', list__.pop(0))

输出:

父親
> おじいさん
> 祖母
母親
> おじいさん
> 祖母

在嵌套循环中找到的 break 语句适用于最近的封闭循环。

while <布尔计算的表达式1>:
   statement
   statement

while <布尔计算的表达式2>:
       statement
       statement
       break  # 适用于 while <布尔计算的表达式2>: 循环

break  # 适用于 while <布尔计算的表达式1>: 循环

while循环可以嵌套在 if、elif、else 语句中。

if <布尔计算的表达式1>:
    <python执行语句1>
    while <布尔计算的表达式2>:
        <python执行语句2>
        <python执行语句3>
else:
    while <布尔计算的表达式3>:
        <python执行语句4>
        <python执行语句5>
    <python执行语句6>

while <布尔计算的表达式1>:
    if <布尔计算的表达式2>:
        <python执行语句1>
    elif <布尔计算的表达式3>:
        <python执行语句2>
    else:
        <python执行语句3>
    if <布尔计算的表达式4>:
        <python执行语句4>

单行 while 循环

与 if 语句一样,while 可以在一行中指定循环。也可以用 ;组成多个循环体语句。

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

输出:

4
3
2
1
0

两个复合语句组合成简写方式是不可以的。

if True: print('data')
data

while n > 0: n -= 1; if True: print('data')
SyntaxError: invalid syntax

来源:https://blog.csdn.net/qq_20288327/article/details/124490435

标签:Python,while,迭代,循环
0
投稿

猜你喜欢

  • Python中的asyncio代码详解

    2022-03-14 00:01:33
  • Python知识点详解之正则表达式语法

    2022-02-08 17:01:31
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    2024-01-23 00:22:28
  • Python Django Vue 项目创建过程详解

    2022-03-28 22:06:38
  • django2+uwsgi+nginx上线部署到服务器Ubuntu16.04

    2022-01-15 17:03:09
  • python 实现一个简单的线性回归案例

    2023-05-08 23:40:25
  • 从零开始学Python第八周:详解网络编程基础(socket)

    2023-09-04 05:16:20
  • MySQL-MMM安装指南(Multi-Master Replication Manager for MySQL)

    2024-01-19 04:46:03
  • 解决IE下提示“无法打开Internet站点 已终止操作”的错误

    2009-03-04 12:04:00
  • linux服务器下PHPCMS v9 安全配置详解

    2023-11-17 11:51:52
  • PHP利用ChatGPT实现轻松创建用户注册页面

    2023-05-25 09:22:16
  • python用函数创造字典的实例讲解

    2021-04-20 13:55:11
  • python字符串连接方式汇总

    2021-08-19 23:46:14
  • ASP平台如何打造金牌英文网站

    2008-04-10 08:47:00
  • 网页栅格系统研究(4):技术实现

    2008-11-06 11:44:00
  • 通过Python实现猜灯谜游戏的示例代码

    2022-01-10 17:49:40
  • python+JS 实现逆向 SMZDM 的登录加密

    2023-09-22 05:38:55
  • Frontpage中网页字体的美化研究

    2008-03-10 12:13:00
  • scrapy-splash简单使用详解

    2023-06-02 15:22:37
  • textarea的输入限制统计代码statInput

    2008-05-22 13:36:00
  • asp之家 网络编程 m.aspxhome.com