首页 > 编程语言 >Python循环控制

Python循环控制

时间:2024-07-15 17:43:51浏览次数:15  
标签:控制 输出 Python else break continue print 循环

技术背景

循环控制是每一门编程语言的基础,最常用的就是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,else,break,continue,print,循环
From: https://www.cnblogs.com/dechinphy/p/18302756/for-control

相关文章

  • 005_python3 元组 字典 集合 条件控制 循环语句 编程第一步
    Python3元组1.元组的元素不能修改,使用小括号,逗号隔开,也可不用小括号,不同类型元素tup1=()  #创建空元组tup2=('he',)   #元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用tup3=('abc','xyz',2,4,9)2.元组使用访问元组:tup3......
  • python-查找算法
    查找算法1.线性查找2.二分查找3.插值查找4.斐波那契查找1.线性查找"""线性查找:对于被查找的序列没有顺序要求,可以是有序的,也可以是无序的,查找时从线性表的起始位置按照顺序匹配,找到元素时,返回该元素在原始字符串的下标若匹配完整个序列......
  • python 基础中requests 验证码
    验证码登录importrequests#古诗文网登录页面的URL地址url='https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTM......
  • Python 数据可视化与报告生成
    Python数据可视化与报告生成在当今的数据驱动世界中,数据可视化和报告生成是数据科学家、分析师和业务决策者不可或缺的工具。Python,作为一种强大且灵活的编程语言,通过其丰富的库和框架,为数据可视化和报告生成提供了广泛的支持。本文将深入探讨Python在数据可视化和报告生......
  • Python Web应用的部署与维护
    PythonWeb应用的部署与维护是一个涉及多个环节和技术的复杂过程,涵盖了从项目准备、服务器配置、代码部署到后期监控与维护的全方位工作。以下是对这一过程的详细阐述。一、Web应用的部署1.项目准备在部署之前,首先需要确保PythonWeb项目已经开发完成,并且经过了充分的测......
  • python 20行代码 无图 turtle 缺心眼(缺良心)还没治好 模拟太阳系天体运行系统
    短短12h赞就破10个了,没20个很好了,我可不想失去头发其实我不想做这个程序的但是今天是我参加完天文比赛的10分之57周年(我2024.5.12参加的)20行以下代码段为准本期新规矩:天王18步老规矩.先放代码importturtle,time;screen=turtle.Screen();screen.bgcolor('black');scr......
  • Python 集合:深入理解与应用
    一、引言1.在Python编程中,集合(Set)是一种强大而有用的数据结构。它具有独特的特性,适用于解决各种问题,特别是在处理不重复元素和集合操作时。二、集合的创建#使用花括号创建集合set1={1,2,3,4,5}#使用set()函数创建集合set2=set([5,6,7,8,9])三、集合......
  • 《探索 Python 字典的奥秘》
    在Python中,字典(Dictionary)是一种非常强大和灵活的数据结构。它以键值对(Key-ValuePair)的形式存储数据,类似于现实生活中的字典,通过查找单词(键)来获取其释义(值)。一、字典的定义字典可以使用花括号 {} 来创建,键和值之间用冒号 : 分隔,键值对之间用逗号 , 分隔,dict 作为......
  • python中逻辑运算符and 和 or 的优先级问题。
    python的说明文档以及教材上、网上都说明and的优先级大于or。但我经过实际操作,发现其中规律似乎并不简单,下面我列举一些代码,来提出我的疑问:有时候or的优先级高,有时候and优先级高,并且并不是从左至右运算。首先说明python当中的and和or运算逻辑如下(这里必须懂):    1......
  • AI绘画 IC-Light:图像打光控制和背景融合生产力工具,最全ComfyUI操作指南
    大家好,我是设计师阿威今天给大家分享一下AI绘画StableDiffusion当中的IC-Light,这是一款图像打光控制和背景融合的光影模型。IC-Ligh简介IC-Light是一款由Controlnet作者lllyasviel创作的最新作品,用于实现操控图像光照效果的项目。当前该项目已经发布了两种类型的模型:文......