失去循环标记的Python,我这样实现跳出外层循环

python之循环 循环是python中最基础,最常用,也是最重要的结构之一,熟练使用循环结构能够让我们在代码编写中更方便简单;python的两个循环结构分别是for、while。 阅读详情
朋友圈的学问

对于刚刚过去的教师节,大家是否发现了点什么...凡是哪个混的风生水起,都喜欢在朋友圈里面感谢一下母校,缅怀一番师生情。那混的不好的,比如我这种苦逼IT搬砖民工,在教师节的朋友圈说说是什么样的呢?哈哈....


5847426-f23440671af8a648.png
教师节的朋友圈

孟子曾说 穷则独善其身,达则兼善天下。意思是不得志的时候就要管好自己的道德修养,得志的时候就要努力让天下人都能得到好处。所以贫穷的我就用苦荞籽庆祝这个节日,为什么说庆祝?只能说,这年头,谁还没个教师资格证了,跟谁俩呢!

5847426-fb974aa737521244.png
呵呵哒

不完美的Python

自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊...但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。

跳出外层循环

大家都知道,在Java中存在标签的概念,当我们存在多层循环时,Java可以使用标签控制指定的循环层。举个小栗子:

public class OuterLoop {
    public static void main(String[] args) {
        outer:
        for (int i = 0; i < 5; i++) {
            inner:
            for (int j = 0; j < 5; j++) {
                System.out.println(j);
                if (j == 2) {
                    break outer;
                }
            }
        }
        System.out.println("over!");
    }
}

output:
0
1
2
over!

我们通过定义标签,在遇到break continue等关键字时,可以控制指定的循环层,然而Python没有标签的概念,那么Python该如何实现这种功能呢?

Python循环跳出

为了方便大家理解,我们来举一个臭不要脸的例子吧!
加入小张、我、小李三个人经常一起吃饭,吃饭就涉及付账了,如果AA那大家都能接受,如果一个人请客,那他俩付钱我当然愿意,如果是我付钱那我吃完了就赶紧尿遁...好了,有这个前提,我们开始写代码吧。

定义函数实现

对于多层循环,在Python中,也许最易于理解的方式就是通过函数return来实现了。但这里要注意一个问题,函数的return会跳出所有循环,对于两层以上的循环不适用...

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @WeChat   : King_Uranus
# @公众号    : 清风Python
# @Date     : 2019/9/11 0:03
# @Software : PyCharm
# @version  :Python 3.7.3
# @File     : OuterLoop.py
import random

people = ['zhang', 'me', 'li']
payments = ['AA', 'stand_treat']

def dine_together():
    # 为了避免一成不变的套路,我们添加两个列表随机
    random.shuffle(payments)
    print(payments)
    random.shuffle(people)
    print(people)

    for payment in payments:
        for person in people:
            if payment == 'stand_treat':
                if person == 'me':
                    print("居然我请客,赶紧尿遁...")
                    people.remove('me')
                    schlemiel = random.choice(people)
                    print("倒霉孩子{}请客".format(schlemiel))
                    # 当遇到我请客,直接结束外层循环,函数返回...
                    return
                else:
                    print("今天{}请客".format(person))
            else:
                print('今天吃饭{},等下{}付钱,大家记得把钱给它...'
                      .format(payment, person))

dine_together()

output:
['stand_treat', 'AA']
['zhang', 'li', 'me']
今天zhang请客
今天li请客
居然我请客,赶紧尿遁...
倒霉孩子li请客
标记变量实现

我们可以通过定义变量值来进行判断是否退出循环,操作如下:

import random

people = ['zhang', 'me', 'li']
payments = ['AA', 'stand_treat']

# 为了避免一成不变的套路,我们添加两个列表随机
random.shuffle(payments)
print(payments)
random.shuffle(people)
print(people)

runaway = False
for payment in payments:
    for person in people:
        if payment == 'stand_treat':
            if person == 'me':
                print("居然我请客,赶紧尿遁...")
                people.remove('me')
                schlemiel = random.choice(people)
                print("倒霉孩子{}请客".format(schlemiel))
                # 修改标记变量
                runaway = True
                # 当遇到我请客,直接结束外层循环,函数返回...
                break
            else:
                print("今天{}请客".format(person))
        else:
            print('今天吃饭{},等下{}付钱,大家记得把钱给它...'
                  .format(payment, person))
    # 判断标记变量
    if runaway:
        break

output:
['stand_treat', 'AA']
['li', 'me', 'zhang']
今天li请客
居然我请客,赶紧尿遁...
倒霉孩子zhang请客
for else实现

for…else…的运行逻辑是当for循环正常执行结束就会运行其else语句,如果中途break的话,就不会执行else中的内容
有失必有得,虽然python没有循环标记,却多出了一个for else的操作,帮助我们实现需求。

import random

people = ['zhang', 'me', 'li']
payments = ['AA', 'stand_treat']

# 为了避免一成不变的套路,我们添加两个列表随机
random.shuffle(payments)
print(payments)
random.shuffle(people)
print(people)

for payment in payments:
    for person in people:
        if payment == 'stand_treat':
            if person == 'me':
                print("居然我请客,赶紧尿遁...")
                people.remove('me')
                schlemiel = random.choice(people)
                print("倒霉孩子{}请客".format(schlemiel))
                # 当遇到我请客,直接结束外层循环,函数返回...
                break
            else:
                print("今天{}请客".format(person))
        else:
            print('今天吃饭{},等下{}付钱,大家记得把钱给它...'
                  .format(payment, person))
    else:
        # 未出现break操作,执行else,通过continue继续操作
        continue
    # 出现break操作,跳过else,直接外层break,结束外层循环
    break
The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点击文章右下角的“在看”。
期待你关注我的公众号 清风Python,如果觉得不错,希望能动动手指转发给你身边的朋友们。
希望每周一至五清晨的7点10分,都能让清风Python的知识文章叫醒大家!谢谢……

5847426-2e491f859caf76b4
清风Python

Matlab子图排版终极指南:从tight_subplot到tiledlayout的实战对比 本文深入对比Matlab中两大子图排版工具:社区经典函数tight_subplot与官方现代布局管理器tiledlayout。针对默认subplot产生的子图间距与边缘距离问题,详细解析两者的设计哲学、参数控制与实战应用,帮助用户根据版本与需求选择最佳方案,实现高效、精确且美观的多子图排版。 阅读详情

相关推荐

LTSPICE使用教程:入门指导

LTSPICE仿真工具入门指导

焊武大帝的专栏 5万+

Python标记函数或类为废弃(deprecated)并在Pychram或Idea中检测提示删除线

在python中,如果你有函数或者类当下没有作用,或者即将废弃,但是你又不想删除,那么你可以标记为deprecated。其实我更想做的是什么?能够让我标记的函数或者类在其它地方使用的时候,能有直观的提示。用Idea做java开发的童鞋肯定很清楚,java代码中的类或者函数只要标记了@Deprecated注解,在所有使用它的地方都会有删除线很直观的标记出来。 那么,PyCharm或者Idea使用Python插件是否也有对Python进行deprecat

白杨 2万+

JavaFX - 动画

JavaFX 动画

思你日度难眠 1603

python三层for循环_python(3)- 循环语句:从最内层跳出多层循环

跳出多层循环:三层循环,最里层直接跳出3层方法一:在Python中,函数运行到return这一句就会停止,因此可以利用这一特性,将功能写成函数,终止多重循环def work(): #定义函数for i in range(5):print("i=", i)for j in range(5):print("--j=", j)for k ...

weixin_39989384的博客 1549

步科触摸屏编程

1.首先官网上下载kinco软件,然后再安装驱动,安装的方式是需要两个文件。把两个文件放到driver文件夹下面,然后设备管理器右键更新,手选driver文件夹,自动安装即可。 步科触摸屏驱动文件下载地址 2.按照步科触摸屏使用手册一步一步来建立工程 Kinco HMIware使用手册下载地址 登录界面 涉及到的是页面切换,用的是login window,然后只留下等级输入那个

MAYBE的博客 2万+

吃透Chisel语言.02.Chisel+VS Code+Ubuntu/WSL2开发环境搭建与使用

既然是学Chisel语言,那肯定得先把环境配置好,磨刀不误砍柴工嘛。而且有个测试环境的话,在后期的学习过程中自己去试运行代码段可以加深学习效果。这里推荐使用Ubuntu或者基于WSL2(Windows Subsystem Linux 2)的Ubuntu,本人使用的是WSL2上的Ubuntu 20.04.3 LTS,在使用体验上与Ubuntu几乎没有区别,且能同时使用Windows提供的诸多便利。...

github-3rr0r的博客 8448

python中退出for循环的两种方式:break 和continue

其实break和continue退出for循环的用法和退出while的用法是一样的。break,当某些条件成立退出循环,后面代码不执行,终止整个循环;continue,当某些条件成立终止当前循环继而执行下次循环。下面用2个代码示例来看看一下怎么使用以及执行结果。执行结果:学习break和continue退出for循环只要把之前我写的对应的while循环中break和continue文章再拿来看一遍就好了,那篇文章写得比较详细。理解一个后,后面的都会迎刃而解,更多。

qq_46094651的博客 4032

ISO26262功能安全--产品开发过程

目录 1.总体理解 2.概念阶段——吹牛,我们是打草稿的 2.1 相关项定义 2.2 HARA分析 2.3 功能安全目标 2.4 安全需求与安全概念 3. 系统阶段——闭门造神车,我们开始修炼 3.1 技术安全需求(TSC) 3.2 系统架构设计 3.3 安全分析与独立性分析 3.4 软硬件接口(HSI) 4. 硬件阶段——苦其心志,苦练经骨 4.1 硬件架构...

AgingMoon的博客 1万+

python跳出外层循环_失去循环标记的Python,我这样实现跳出外层循环

不完美的Python自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。跳出外层循环大家都知道,在Java中存在标签的概念,当我们存在多层循环时,Java可以使用标签控制指定的循环层。举个小栗子:public class OuterLoop {public static void main(...

weixin_30466329的博客 731

MIPI DSI2接口开发避坑指南:以RK3576的GM8775C桥接芯片调试为例

本文以RK3576平台搭配GM8775C桥接芯片为例,深入剖析MIPI DSI2接口开发中的常见问题与解决方案。文章详细解读了从U-Boot阶段到内核DRM驱动架构的完整显示通路构建,重点分享了电源时序管理、寄存器配置与硬件协同调试等实战经验,为嵌入式显示系统开发者提供了一套系统化的避坑指南和调试方**。

weixin_29290379的博客 329

YOLOv13改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 已更新种不同的改进方案,专栏内的每篇文章皆,均可顺利运行。2️⃣ 订阅专栏即可进群获取以及从的各种答疑内容。3️⃣ 全新的YOLOv13改进专栏,,只为更好的满足论文发表的要求。专栏内容,专栏实时评分,全网最高,质量保证。🎫。。

Limiiiing的博客 9157

python break跳出外层_失去循环标记的Python,我这样实现跳出外层循环

不完美的Python自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。跳出外层循环大家都知道,在Java中存在标签的概念,当我们存在多层循环时,Java可以使用标签控制指定的循环层。举个小栗子:public class OuterLoop {public static void main(...

weixin_39612023的博客 398

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python跳出两层for_失去循环标记的Python,我这样实现跳出外层循环

不完美的Python自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。跳出外层循环大家都知道,在Java中存在标签的概念,当我们存在多层循环时,Java可以使用标签控制指定的循环层。举个小栗子:public class OuterLoop { public static void ...

weixin_39839968的博客 160

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

失去循环标签的Python,我这样实现跳出外层循环

不完美的Python 自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。 跳出外层循环 大家都知道,在Java中存在标签的概念,当我们存在多层循环时,Java可以使用标签控制指定的循环层。举个小栗子: Python循环跳出 为了方便大家理解,我们来举一个臭不要脸的例子吧! 加...

华为云官方博客 2420

python如何跳出外层循环_失去循环标签的Python,我这样实现跳出外层循环

不完美的Python自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。跳出外层循环大家都知道,在Java中存在标签的概念,当我们存在多层循环时,Java可以使用标签控制指定的循环层。举个小栗子:Python循环跳出为了方便大家理解,我们来举一个臭不要脸的例子吧!加入小张、我、小李三个人经常...

weixin_39517054的博客 584

python跳出外层循环_失去循环标签的Python,我这样实现跳出外层循环

不完美的Python自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊…但python有些细节上缺少其他语言的便利。今天我们就来举几个例子。跳出外层循环大家都知道,在Java中存在标签的概念,当我们存在多层循环时,Java可以使用标签控制指定的循环层。举个小栗子:Python循环跳出为了方便大家理解,我们来举一个臭不要脸的例子吧!加入小张、我、小李三个人经常...

weixin_39911567的博客 153

分支语句和循环语句

C语言初阶的简单理解。

weixin_73602892的博客 357

Python学术图表黑白绘制技巧:从线型、标记到灰度对比的完整指南

数据可视化是科研与工程领域传递信息的关键技术,其核心原理在于将抽象数据转化为直观的视觉编码系统。在学术出版场景中,图表常需经受黑白打印或灰度显示的考验,这要求可视化方案必须具备不依赖于颜色的鲁棒性。其技术价值在于确保研究成果在任何传播介质中都能无损、准确地呈现,这对于论文发表、技术报告等严肃场景至关重要。本文聚焦于Python的Matplotlib和Seaborn库,深入探讨如何通过系统性地组合线型、标记符、填充图案以及精细控制灰度对比度,构建一套多维的视觉识别体系,从而绘制出符合学术出版规范、在黑白模式下

weixin_33868027的博客 338

Python图像隐写术实战:LSB原理与Pillow实现

图像隐写术是信息安全领域的一项关键技术,它通过在数字图像中嵌入秘密信息,实现信息的隐蔽传输。其核心原理是利用人类视觉系统对图像细微变化的不敏感性,在像素的颜色通道最低有效位(LSB)进行比特替换,从而实现信息隐藏而不影响视觉观感。这项技术的工程价值在于将数据安全与多媒体处理相结合,为版权保护、隐蔽通信等场景提供了轻量级解决方案。本文以Python的Pillow库为工具,详细解析了LSB隐写的实现过程,包括像素遍历、比特操作和容量计算,并通过完整的代码示例演示了如何构建一个健壮的图像隐写工具。项目涵盖了虚拟环

weixin_33788244的博客 355

N-Queen问题的遗传算法Python工程化实现

遗传算法(GA)是一种基于自然选择与群体搜索思想的通用优化方法,其核心在于编码设计、适应度评估与种群演化机制的协同。在实际工程中,GA并非理论套用,而是需直面数值稳定性、内存效率与收敛鲁棒性等关键挑战。本文聚焦N-Queen这一经典组合优化问题,深入解析排列编码如何天然满足约束、倒数型fitness函数(如1/(q+0.001))如何强化选择压力,以及NumPy向量化、模块化解耦、参数驱动等Python工程化落地策略。内容覆盖从8皇后到100皇后的规模扩展实践,适用于课程设计、智能排产与路径规划等真实场景。

weixin_30727835的博客 364

Python实现XOR加密勒索程序模型:从原理到防御的逆向学习

XOR(异或)加密是密码学中的基础对称加密算法,其原理基于二进制位的异或运算,具有加解密使用同一操作的核心特性。在工程实践中,XOR运算因其实现简单、执行高效的特点,常被用于演示加密技术的基本原理,但也因密钥管理不当易受攻击。理解XOR加密有助于掌握更广泛的加密技术概念,如密钥生成、文件操作和异常处理,这些是构建安全应用和进行威胁分析的通用基础。通过模拟勒索软件的关键模块——包括文件系统遍历、XOR加密引擎和勒索信生成——可以深入理解恶意软件的攻击链,从而提升在文件监控、行为检测和应急响应方面的防御能力。本

weixin_30788619的博客 447
上一篇: 使用Python为中秋节绘制一块美味的月饼
下一篇: Python面试的一些心得,与Python练习题分享
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值