详解Python中while无限迭代循环方法
作者:Mr数据杨 发布时间:2022-08-17 12:53:48
前言
Python 有 while 语句和 for 语句作为循环处理。虽然 for 语句具有一定数量的进程,但 while 语句是『直到满足条件』类型的循环进程。
对于无限迭代 while,循环执行的次数没有事先明确指定。相反,只要满足某些条件指定的块就会重复执行。
使用定义迭代 for,指定块将被执行的次数在循环开始时已经倍明确指定。
除了 while 语句的一般特性之外,Python 也有自己的规范,例如对 do while 语句的支持不足。循环处理是编程的基本语法。
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 语句立即终止当前循环迭代。执行跳转到循环的顶部,并重新评估控制表达式以确定循环是再次执行还是终止。
# 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结束时使用可选子句。
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理论上永远不会结束的循环。
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
来源:https://blog.csdn.net/qq_20288327/article/details/124490435


猜你喜欢
- <script>alert(escape("人"));alert(encodeURI("人&quo
- vue3 项目封装侧导航文字骨架效果组件-全局封装,供大家参考,具体内容如下目的当显示页面的时候,有些数据是需要从后台加载,网络不好的时候可
- 字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,
- Python提取html中文本到txt正则去标签方式# -*- coding: utf-8 -*-import redef html_tag
- 计时器setTimeout()和setInterval()两个都是js的计时功能的函数两个有些区别。 setTimeout(): 在js手册
- MASK图像掩膜处理在图像操作中有时候会用到掩膜处理,如果使用遍历法掩膜图像ROI区域对于python来讲是很慢的,所以我们要找到一种比较好
- 内容摘要:FCKeditor至今已经到了2.3.1版本了,对于国内的WEB开发者来说,也基本上都已经“闻风知多少”了,很多人将其融放到自己的
- 1 锁片化的产生1.1 产生碎片化的原因1、在B-tree索引中,表数据按照聚集索引的排序进行物理存储,若聚集索引离散化比较严重,那么可能会
- 如今,体育运动的热潮日益流行。同样,以不正确的方式进行运动的风险也在增加。有时可能会导致严重的伤害。考虑到这些原因,提出一种以分析运动员的关
- EcmaScript正則表達式( 深入淺出系列之淺出 ^_^ )在线正则表达式测试:http://www.aspxhome.com/RegE
- 本文实例讲述了PHP 对象继承原理与简单用法。分享给大家供大家参考,具体如下:对象继承继承已为大家所熟知的一个程序设计特性,PHP 的对象模
- Mybatisd对sql表的一对多查询select * fromprojectrecord prleft join projects poo
- 闭包内容:匿名函数:能够完成简单的功能,传递这个函数的引用,只有功能普通函数:能够完成复杂的功能,传递这个函数的引用,只有功能闭包:能够完成
- 简介  在现在的移动端App中,由于开发效率、需求频繁变更的需求情况下,经常有相关的运营需求,经常要进行更新,如果全部采用
- 创建一个NNimport tensorflow as tfimport numpy as np#fake datax = np.linspa
- Pyqt5安装并配置到pycharm方法:教你如何用pycharm安装pyqt5及其相关配置一、简介QLabel是界面中的标签类,继承自QF
- 一、图例(legend)import plotly.io as pioimport plotly.express as pximport p
- selenium 安装与 chromedriver安装我们前文提到,Python脚本中使用了selenium库,而selenium又通过ch
- 本文实例为大家分享了jQuery Ajax File Upload实例源码,供大家参考,具体内容如下项目结构Default.aspxUplo
- 前言本文介绍的是将django项目部署到centos的遇到的一些问题,关于将Django项目部署到CentOs服务器中的步骤可以参考这篇文章