Python基础必掌握的while无限迭代循环方法详解

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

  • 对于无限迭代 while,循环执行的次数没有事先明确指定 。相反,只要满足某些条件指定地块就会重复执行 。
  • 使用定义迭代 for,指定块将被执行的次数在循环开始时已经被明确指定 。
除了 while 语句的一般特性之外,Python 也有自己的规范,例如对 do while 语句的支持不足 。循环处理是编程的基本语法 。
整套学习自学教程中应用的数据都是《三國志》、《真·三國無雙》系列游戏中的内容 。
Python基础必掌握的while无限迭代循环方法详解

文章插图
 
while循环 
Python基础必掌握的while无限迭代循环方法详解

文章插图
 
while <布尔计算的表达式>:<执行的python语句> # 循环体控制表达式,<布尔计算的表达式> 通常涉及一个或多个变量,这些变量在开始循环之前被初始化,然后在循环体的某处可能会被修改 。
当 while 遇到循环时,首先在 Boolean context 中 <布尔计算的表达式> 进行评估 。
n = 5while n > 0:n -= 1 # n = n - 1print(n)43210while 首先测试循环的控制表达式 。假设开始就为假,则循环体将永远不会被执行 。
n = 5while n > 5:n -= 1print(n)break语句 和 continue语句while 循环的整个主体都在每次迭代中执行,Python 提供了两个过早终止循环迭代的关键字 。
  • break 语句立即完全终止循环 。程序执行继续到循环体之后的第一条语句 。
  • continue 语句立即终止当前循环迭代 。执行跳转到循环的顶部,并重新评估控制表达式以确定循环是再次执行还是终止 。
 
Python基础必掌握的while无限迭代循环方法详解

文章插图
 
# break 举例n = 5while n > 0:n -= 1if n == 2:breakprint(n)print('循环结束 。')43循环结束 。# continue 举例n = 5while n > 0:n -= 1if n == 2:continueprint(n)print('循环结束 。')4310循环结束 。else 子句Python 允许在循环else结束时使用可选子句 。
Python基础必掌握的while无限迭代循环方法详解

文章插图
 
while <布尔计算的表达式>:<执行的python语句> # 循环体else:<循环终止后执行语句>n = 5while n > 0:n -= 1print(n)else:print('循环结束 。')43210循环结束 。# 如果有break某些情况下就不会被执行n = 5while n > 0:n -= 1print(n)if n == 2:breakelse:print('循环结束 。')432无限循环假设编写了一个while理论上永远不会结束的循环 。
Python基础必掌握的while无限迭代循环方法详解

文章插图
 
while True:print('真·三國無雙')真·三國無雙真·三國無雙...真·三國無雙Traceback (most recent call last):File "<stdin>", line 1, in <module>KeyboardInterrupt这样的循环只能手动停止 。
但实际上也有它的应用,例如循环删除列表中的元素 。
list_ = ['真·三國無雙', '真·三國無雙', '真·三國無雙']while True:if not list_ :breakprint(list_.pop(-1))真·三國無雙真·三國無雙真·三國無雙可以 break 在循环中指定多个语句 。可以通过 break 从几个不同的位置结束循环,而不必在循环中指定所有终止条件 。
while True:if <布尔计算的表达式1>:# 条件判断1breakif <布尔计算的表达式2>:# 条件判断2breakif <布尔计算的表达式3>:# 条件判断3break嵌套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>:statementstatementwhile <布尔计算的表达式2>:statementstatementbreak# 适用于 while <布尔计算的表达式2>: 循环break# 适用于 while <布尔计算的表达式1>: 循环


推荐阅读