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

目录
  • 前言
  • while循环
  • break语句 和 continue语句
  • else 子句
  • 无限循环
  • 嵌套while循环
  • 单行 while 循环

前言

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

以上就是详解Python中while无限迭代循环方法的详细内容,更多关于Python while无限迭代的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python趣味入门教程之循环语句while

    前言 任何语言都有循环语句,在Python里循环更是变化无穷,有基本的循环,有循环else语句,引伸出来的还有迭代器.推导式,咱们先学习最简单的一种. While循环  while 条件判断语句: 子代码1 子代码2 子代码3 - 子代码N 主代码1 while语句的格式与if类似,子代码必须进行缩进4个空格,作用却是大不相同.当它执行第一次循环时,判断条件是否成立,如果条件成立,就从子代码1开始执行到子代码N,然后程序会回到while语句再次判断条件是否成立,如果成立就继续从子代码1开始执行,

  • python中使用while循环的实例

    python中for循环用于针对集合中的每个元素的一个代码块,而while循环能实现满足条件下的不断运行. 使用while循环时,由于while只要满足条件就会执行代码,故必须指定结束条件,否则会形成死循环.如图,i 的初始值为1,由于没有给i 再进行赋值,导致i 一直都满足条件,进入死循环.代码示例如下: i = 1 while i <= 5: print(i) 上述问题的解决方案就是在循环中,给i 赋值.这样当i 不再满足条件时,程序将终止.代码示例如下: i = 1 while i <=

  • python基础教程之while循环

    前言 今天来说下python中的循环.循环的意思是什么,以环形.回路或轨道运行;沿曲折的路线运行;特指运行一周而回到原处.这是百度给出的循环的意思.在python中,就是重复执行你给的指令,直至结束.我们现在看下,在python中,循环就是:while:它有它的规则结构,就是while + 条件(冒号,这个别忘记了.): 意思是,当条件不成立时,不循环.举个例子说明一下: 我们先来说下这个例子的意思,首先,while+条件: 这个已经带入到了代码中,这个代码的意思是当循环10次1的时候 ,跳出循

  • 学习python 的while循环嵌套

    目录 while 循环嵌套 1 基本架构了解 2 打印一个三角形 2.1 练习打印一个距形 3 while嵌套实现九九乘法表  3.1 练习矩阵打印 总结 while 循环嵌套 1 基本架构了解 今天学习while循环嵌套.我们先看一个例子: i=0 while i<3: print("这是第%d行"%i) j=0 while j<4: print("学python") j+=1 print() i+=1  在上面的代码中,外层循环执行一次,内层循环会执

  • Python学习之while 循环语句

    目录 1.while 基本循环: 2.while -- continue 语句: 3.while --break语句: 4.while --else语句: 总结 while 语句 和 if 语句差不多 在while 后面加上所需的循环条件用 " : "作为结尾,当条件满足时就运行while下面的程序块直到while后面的条件不再被满足,程序会跳出while语句继续往下运行,大概有以下几种: while基本循环 while -- continue 语句 while --break语句 w

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

    目录 前言 while循环 break语句 和 continue语句 else 子句 无限循环 嵌套while循环 单行 while 循环 前言 Python 有 while 语句和 for 语句作为循环处理.虽然 for 语句具有一定数量的进程,但 while 语句是『直到满足条件』类型的循环进程. 对于无限迭代 while,循环执行的次数没有事先明确指定.相反,只要满足某些条件指定的块就会重复执行. 使用定义迭代 for,指定块将被执行的次数在循环开始时已经倍明确指定. 除了 while 语

  • 详解python中@classmethod和@staticmethod方法

    在python类当中,经常会遇到@classmethod和@staticmethod这两个装饰器,那么到底它们的区别和作用是啥子呢?具体来看下. @classmethod :默认有一个cls参数,用类或对象都可以调用. @staticmethod:静态方法,无默认参数,用类和对象都可以调用. 1.@staticmethod: 我们看下代码: class A: def f1(x): print(x) A.f1(2) # 2 类.函数 创建一个类,通过类调用函数. class A: @staticm

  • 详解python中index()、find()方法

    python中index().find()方法,具体内容如下: index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常.影响后面程序执行 index()方法语法:str.index(str, beg=0, end=len(string)) str -- 指定检索的字符串 beg -- 开始索引,默认为0. end --

  • 详解Python中__str__和__repr__方法的区别

    对我当前工程进行全部测试需要花费不少时间.既然有 26 GB 空闲内存,为何不让其发挥余热呢? tmpfs 可以通过把文件系统保存在大内存中来加速测试的执行效率. 但优点也是缺点,tmpfs 只把结果保存在内存中,所以你必须自己编写脚本来把结果回写到磁盘上进行保留.而且这些脚本必须良好书写和执行,否则就要失去部分或全部的工作成果了. 一种常见的方法是直接在tmpfs文件夹中工作,然后把工作成果备份到磁盘上的一个文件夹中.当您的机器启动时你从那个备份文件夹恢复tmpfs文件夹.启动之后用cron同

  • 详解python中executemany和序列的使用方法

    详解python中executemany和序列的使用方法 一 代码 import sqlite3 persons=[ ("Jim","Green"), ("Hu","jie") ] conn=sqlite3.connect(":memory:") conn.execute("CREATE TABLE person(firstname,lastname)") conn.executeman

  • 详解Python中pyautogui库的最全使用方法

    在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库.就本人而言,我更喜欢使用pyautogui库,该库功能多,使用便利.下面给大家介绍一下pyautogui库的使用方法.在cmd命令框中输入pip3 install pyautogui即可安装该库! 常用操作 我们在pyautogui库中常常使用的方法,如下: import pyautogui pyautogui.PAUSE = 1 # 调用在执行动作后暂停的秒数,只能在执行一些pyaut

  • 详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法

    [m : ] 代表列表中的第m+1项到最后一项 [ : n] 代表列表中的第一项到第n项 [-1] 代表去到最后一项 [:-1]代表除了最后一个都获取到 [::-1]代表逆序取,从后向前取 [2::-1]代表从下标从0到2的三个数,逆序取 [1:]代表从下标为1开始取到最后一个数 例子: import numpy as np a=np.random.rand(5) print(a) [ 0.64061262 0.8451399 0.965673 0.89256687 0.48518743] pr

  • 详解Python中__new__方法的作用

    目录 前言 一.__new__方法简介 1.初始化数据加载+解析类实例 2.初始化数据加载重写new方法+解析类实例 二.单例模式 1.用new方法如何实现单例模式 2.如何控制类仅执行一次初始化方法 三.多例模式 总结 前言 Python中类的构造方法__new__方法有何作用? Python类中有些方法名.属性名的前后都添加__双下画线,这种方法.属性通常属于Python的特殊方法和特殊属性.通过重写这些方法或直接调用这些方法来实现特殊功能.今天来聊聊构造方法__new__实际程序的应用场景

  • 详解python中读取和查看图片的6种方法

    目录 1 OpenCV 2 imageio 3 PIL 4 scipy.misc 5 tensorflow 6 skimage 本文主要介绍了python中读取和查看图片的6种方法,分享给大家,具体如下: file_name1='test_imgs/spect/1.png' # 这是彩色图片 file_name2='test_imgs/mri/1.png' # 这是灰度图片 1 OpenCV 注:用cv2读取图片默认通道顺序是B.G.R,而不是通常的RGB顺序,所以读进去的彩色图直接显示会出现变

  • 详解Python中for循环的定义迭代方法

    目录 Python的 for 循环 遍历字典 range()功能 break语句 和continue语句 else语句 Python的 for 循环 Python 是基于集合的迭代. for <var> in <iterable>: # <iterable>是对象的集合--例如,列表或元组. <statement(s)> # 循环体 a = ['曹操', '孫権', '劉備'] for i in a: print(i) 输出: 曹操孫権劉備 可迭代对象 ,可

随机推荐