Python循环控制

python · 浏览次数 : 54

小编点评

本文介绍了Python编程语言中for循环和if条件控制的基本使用。主要内容包括: 1. 单层for循环:介绍了如何使用for循环打印数字,以及Pythonic的写法。同时,讲解了continue、break和pass语句在循环控制中的应用。 2. 双重for循环:通过打印数字的案例,展示了双重for循环的使用方法。介绍了Pythonic的写法,并提到了zip打包的方法进行循环。 3. 多层循环控制:解释了在多层循环中使用break和continue语句的逻辑,以及如何在满足条件时退出多层循环。 总结:本文通过实例演示了Python for循环和if条件控制的基本用法,包括单层循环的退出机制和多层循环的退出机制。

正文

技术背景

循环控制是每一门编程语言的基础,最常用的就是for循环和while循环。使用循环可以很大程度上简化代码的编写,可读性也很强。这里介绍Python的for循环基本操作和多重循环的控制。

单层for循环

这里用一个最简单的打印数字的for循环来演示普通单层for循环的控制:

for i in (1, 2, 3): 
    print (i)

输出结果为:

1
2
3

值得一提的是,Pythonic的写法使得我们可以把这一串的循环写到一行里面:

for i in (1, 2, 3): print (i)

输出结果是一样的,但是可以很大程度上缩略简单代码的行数。对于比较复杂的循环体,建议还是分行来写,提升代码可读性。

双重for循环

我们还是使用打印数字的简单案例:

for i in (1, 2, 3):
    for j in (4, 5):
        print (i, j)

输出结果为:

1 4
1 5
2 4
2 5
3 4
3 5

那么类似的,双重循环也可以使用一些Pythonic的写法:

from itertools import product
for i, j in product((1, 2, 3), (4, 5)): print (i, j)

输出结果依然是一样的,但是代码量从三行缩减到了两行。这里顺带介绍另一个情况,在循环内操作多个对象:

a = (1, 2, 3)
b = (4, 5, 6)
for i in range(3):
    print (a[i], b[i])

输出结果为:

1 4
2 5
3 6

那么其实也可以用zip打包的方法进行循环:

for i, j in zip((1, 2, 3), (4, 5, 6)): print (i, j)

当然,输出结果也是跟上面的案例一致的。

单层循环控制

常用的控制句柄就是continuebreakpass,然后结合if...elif...else来使用。还是用这个打印数字的示例,但是我们只打印奇数:

for i in (1, 2, 3):
    if i % 2 == 1:
        print (i)

输出结果为:

1
3

这里条件控制内容为:当得到的数为奇数时,打印该数。而如果为偶数,则执行if从句之外的内容,因为这里函数之外没有其他操作,因此就不打印。如果需要打印,我们可以加上一个打印操作:

for i in (1, 2, 3):
    if i % 2 == 1:
        print (i)
    else:
        print ('Even: {}'.format(i))

输出结果为:

1
Even: 2
3

条件判断可以结合continue来使用,continue表示跳过余下所有的操作,执行循环的下一步。例如上面这个例子,假设我们不使用else语句,直接在if内部加上一个continue,也是可以实现同样功能的:

for i in (1, 2, 3):
    if i % 2 == 1:
        print (i)
        continue
    print ('Even: {}'.format(i))

输出结果为:

1
Even: 2
3

如果说达到条件不想继续循环了,可以使用break:

for i in (1, 2, 3):
    if i % 2 == 1:
        print (i)
    else:
        print ('Even: {}'.format(i))
        break

输出结果为:

1
Even: 2

这里到出现第一个偶数之后,就退出了循环。

多层循环控制

对于if和continue、break等语句的使用逻辑,在多层循环下和单层循环是一致的。但是这里break只能跳出一层循环,不能跳出两层循环:

for i in (1, 2, 3):
    for j in (4, 5):
        if i + j == 6:
            break
        print (i, j)

输出结果为:

1 4
3 4
3 5

这里输出结果跳过了(1,5),(2,4),(2,5)这几个组合,但是后面的依然都可以正常的输出。如果想退出多层循环应该怎么操作呢?可以参考下下面这个案例:

for i in (1, 2, 3):
    for j in (4, 5):
        if i + j == 7:
            break
        print (i, j)
    else:
        continue
    break

输出结果为:

1 4
1 5
2 4

这里我们稍微改了一下条件,当i+j=7时,退出所有循环。这里在内部循环中触发了一个break之后,到外层循环会跳过else去执行第二个break,也就是退出所有的循环。但是如果内部循环中没有触发break,也就是满足if的条件,那么到了外层循环就会进入到else的语句中,也就是执行continue语句。因此,如果需要在满足条件时退出多层的循环,那么就使用for...[for...if...]else...break这样的形式去写就可以了,然后把外层循环非退出场景的任务写到else语句下就可以了。

在上面这个案例中,假如没有设定这个continue语句,那么结果会是这样的:

for i in (1, 2, 3):
    for j in (4, 5):
        if i + j == 7:
            break
        print (i, j)
    break

输出:

1 4
1 5

也就是说,不论是否满足内循环里面的if条件,到了外层循环都是直接break退出,所以一般我们还是会通过else...continue来继续执行外层循环。

总结概要

本文介绍了Python编程语言中关于for循环和if条件控制的一些基本使用。包含了单层循环的退出机制和多层循环的退出机制,使得我们在满足特定条件时,可以直接结束多层循环。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/for-control.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

与Python循环控制相似的内容:

Python循环控制

本文介绍了Python编程语言中关于for循环和if条件控制的一些基本使用。包含了单层循环的退出机制和多层循环的退出机制,使得我们在满足特定条件时,可以直接结束多层循环。

< Python全景系列-3 > Python控制流程盘点及高级用法、神秘技巧大揭秘!

全面深入地介绍 Python 的控制流程,包括条件语句、循环结构和异常处理等关键部分,尤其会将列表解析、生成器、装饰器等高级用法一网打尽。此外,我还将分享一些独特的见解和研究发现,希望能给你带来新的启发。文章的结尾,我们将有一个 "One More Thing" 环节,我会分享一个很特别但又很少人知道的有用的 Python 控制流程的技巧。

11个Python循环技巧

本文分享自华为云社区《Python中的循环技巧指南》,作者:柠檬味拥抱。 当我们处理数据时,有时候需要创建多个列表以存储不同类型或不同条件下的数据。在Python中,我们可以利用循环来快速、高效地创建这些列表。本文将介绍如何使用循环在Python中创建多个列表,并提供代码实例。 python用循环新

[转帖]Python基础之判断和循环(三)

https://www.jianshu.com/p/5a7552821c63 一、判断 关于判断,跟字面意思一样,就是判断某一个时刻应不应该做某件事; 语法: if 判断条件: 执行语句…… else: 执行语句…… 判断条件: <:小于 >:大于 ==:等于 !=:不等于 >=:大于等于 <=:小

SICP:元循环求值器(Python实现)

元语言抽象就是建立新的语言。它在工程设计的所有分支中都扮演着重要的角色,在计算机程序设计领域更是特别重要。因为这个领域中,我们不仅可以设计新的语言,还可以通过构造求值器的方式实现这些语言。对某个程序设计语言的求值器(或者解释器)也是一个过程,在应用于这个语言的一个表达式时,它能够执行求值这个表达式所要求的动作。接下来我们将要讨论如何关于在一些语言的基础上构造新的语言。在这篇博客里,我们将用Pyth

NumPy 数组迭代与合并详解

NumPy 数组迭代 NumPy 数组迭代是访问和处理数组元素的重要方法。它允许您逐个或成组地遍历数组元素。 基本迭代 我们可以使用 Python 的基本 for 循环来迭代 NumPy 数组。 一维数组迭代: import numpy as np arr = np.array([1, 2, 3,

【numpy基础】--通用计算

`numpy`提供了简单灵活的接口,用于优化数据数组的计算。 通用计算最大的优势在于通过向量化操作,将循环推送至`numpy`之下的编译层,从而取得更快的执行效率。 `numpy`的通用计算让我们计算数组时就像计算单独一个变量一样, 不用写循环去遍历数组中的各个元素。 比如,对于一般的`python

音频文件降噪及python示例

操作系统 :Windows 10_x64 Python版本:3.9.2 noisereduce版本:3.0.2 从事音频相关工作,大概率会碰到降噪问题,今天整理下之前学习音频文件降噪的笔记,并提供Audacity和python示例。 我将从以下几个方面展开: noisereduce库介绍 使用Aud

Python按条件筛选、剔除表格数据并绘制剔除前后的直方图

本文介绍基于Python语言,读取Excel表格文件数据,以其中某一列数据的值为标准,对于这一列数据处于指定范围的所有行,再用其他几列数据的数值,加以数据筛选与剔除;同时,对筛选前、后的数据分别绘制若干直方图,并将结果数据导出保存为一个新的Excel表格文件的方法~

我从 Python 潮流周刊提取了 800 个链接,精选文章、开源项目、播客视频集锦

你好,我是豌豆花下猫。前几天,我重新整理了 Python 潮流周刊的往期分享,推出了第 1 季的图文版电子书,受到了很多读者的一致好评。 但是,合集和电子书的篇幅很长,阅读起来要花不少时间。所以,为了方便大家阅读,我打算将合集进一步整理,分门别类将原始内容的标题罗列出来。 本文总计约 800 个链接