Python循环之while无限迭代


Posted in Python onApril 30, 2022

前言

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))

输出:

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

可以 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

以上就是详解Python中while无限迭代循环方法的详细内容!


Tags in this post...

Python 相关文章推荐
爬山算法简介和Python实现实例
Apr 26 Python
python实现封装得到virustotal扫描结果
Oct 05 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
mac下pycharm设置python版本的图文教程
Jun 13 Python
Python 微信之获取好友昵称并制作wordcloud的实例
Feb 21 Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
Django与pyecharts结合的实例代码
May 13 Python
五种Python转义表示法
Nov 27 Python
Django url 路由匹配过程详解
Jan 22 Python
如何Python使用re模块实现okenizer
Apr 30 #Python
如何使用python包中的sched事件调度器
Apr 30 #Python
详解OpenCV获取高动态范围(HDR)成像
详解OpenCV曝光融合
python使用shell脚本创建kafka连接器
Apr 29 #Python
python中pycryto实现数据加密
Apr 29 #Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 #Python
You might like
PHP学习资料汇总与网址
2007/03/16 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
详解PHP PDO简单教程
2019/05/28 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
jQuery回车实现登录简单实现
2013/08/20 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
实例讲解Python中的私有属性
2014/08/21 Python
Saltstack快速入门简单汇总
2016/03/01 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Django与JS交互的示例代码
2017/08/23 Python
python 图像平移和旋转的实例
2019/01/10 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
日语专业推荐信
2013/11/12 职场文书
十岁生日同学答谢词
2014/01/19 职场文书
企业军训感言
2014/02/08 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
2015大学生求职信范文
2015/03/20 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书