python跳出多层for循环的方法

简介: python跳出多层for循环的方法

在业务逻辑中有时候会遇到两层for循环的情况,触发某些条件时,需要直接退出两层for循环

而python官方是没有 goto 语句的那么我们可以这样实现

第一种定义变量flag,根据flag的值做退出

flag=True
for i in range(10):
    for j in range(10):
        if i+j>15 :
            print(i, j)
            flag=False
            break
    if not flag:
            break

第二种,在方法内用return

def ttt():
    for i in range(10):
        for j in range(10):
            if i+j>15 :
                print(i, j)
                return

ttt()

第三种,Python的for循环有else关键字,可以利用else和 comtinue、break跳出循环

def ttt():
    for i in range(10):
        for j in range(10):
            if i+j>15 :
                print(i, j)
                break
        else:
            continue
        break

ttt()

这段代码什么意思呢 python里面for...else...表示如果这个循环正常的走完了则会执行else里面的代码,异常退出则不会执行,我们对内层循环做判断,符合条件了break则内存循环异常退出,对应的else也不会执行,然后再下一行是break完成外层循环的退出

第四种,我们也可以利用抛出异常来退出

class over_loop(Exception): pass

def ttt():
    try:
        for i in range(10):
            for j in range(10):
                if i + j > 15:
                    print(i, j)
                    raise over_loop()
    except over_loop:
        pass
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441 
ttt()

这段代码是这样的,首先定义一个异常类,在循环中判断符合条件就抛出这个异常类,然后外层用try...except...包裹住,如果接收到是自己定义的这个异常类就pass掉完成函数或者循环的退出

代码没有好坏,只有合适,也许在某些业务逻辑下,后两种更好用一点。这个for...else...是一个巧思,虽然他本质还是一层一层退出,但是利用其break结束循环之后else就不会执行。也是个很新奇的做法。

相关文章
|
3天前
|
数据可视化 PyTorch Serverless
Python 性能分析的几个方法,找到你代码中的那个她
我们在编写了一个脚本在笔记本上处理一些数据,然后去喝杯咖啡或者上了个厕所,15分钟后回来时发现进度才完成不到10%。 我们的脑袋里面就会发问:为什么这么慢?究竟是在哪个部分是慢的?是读取数据、处理数据还是保存数据?如何让它变快?它真的很慢吗? 有了这个疑问我们尝试去解决这个问题,下面我们介绍几个 python 性能分析的工具。
|
5天前
|
算法 计算机视觉 索引
python---OpenCv(二),背景分离方法较有意思
python---OpenCv(二),背景分离方法较有意思
|
7天前
|
SQL 数据库 Python
【Python】已完美解决:(executemany()方法字符串参数问题)more placeholders in sql than params available
【Python】已完美解决:(executemany()方法字符串参数问题)more placeholders in sql than params available
8 1
|
10天前
|
设计模式 开发者 Python
Python中循环依赖问题及其解决方案
循环依赖是 Python 开发中需要特别注意的问题。通过重新设计模块结构、延迟导入、依赖注入、利用 Python 的动态特性以及代码重构等方法,可以有效地解决循环依赖问题。这些策略不仅有助于提高代码的可维护性和可读性,还能避免潜在的运行时错误。在实际开发中,开发者应该根据具体情况选择合适的解决方案。
|
1天前
|
数据可视化 Python
时间序列分析是一种统计方法,用于分析随时间变化的数据序列。在金融、经济学、气象学等领域,时间序列分析被广泛用于预测未来趋势、检测异常值、理解周期性模式等。在Python中,`statsmodels`模块是一个强大的工具,用于执行各种时间序列分析任务。
时间序列分析是一种统计方法,用于分析随时间变化的数据序列。在金融、经济学、气象学等领域,时间序列分析被广泛用于预测未来趋势、检测异常值、理解周期性模式等。在Python中,`statsmodels`模块是一个强大的工具,用于执行各种时间序列分析任务。
7 0
|
1天前
|
机器学习/深度学习 缓存 安全
Python标准库中的`str`类型有一个`translate()`方法,它用于替换字符串中的字符或字符子集。这通常与`str.maketrans()`方法一起使用,后者创建一个映射表,用于定义哪些字符应该被替换。
Python标准库中的`str`类型有一个`translate()`方法,它用于替换字符串中的字符或字符子集。这通常与`str.maketrans()`方法一起使用,后者创建一个映射表,用于定义哪些字符应该被替换。
4 0
|
7天前
|
数据采集 JSON API
深入解析:抖音视频标题的Python爬虫提取方法
深入解析:抖音视频标题的Python爬虫提取方法
|
13天前
|
C++ Python
揭秘!Python高手都在用的数据类型秘籍,列表推导式让你告别繁琐循环
【7月更文挑战第2天】Python的列表推导式是高手必备技巧,它让复杂的循环简化为一行代码,提升代码的可读性和效率。例如,要计算数字列表的平方,传统循环需使用`for`和`append()`,而列表推导式只需`[number ** 2 for number in numbers]`。此外,它还能结合条件表达式,如筛选并平方偶数:`[number ** 2 for number in numbers if number % 2 == 0]`。学会列表推导式,让你的Python代码更优雅、更易维护。
|
17天前
|
机器学习/深度学习 人工智能 程序员
探索Python宝库:从基础到技能的干货知识(数据类型与变量+ 条件与循环+函数与模块+文件+异常+OOP)
探索Python宝库:从基础到技能的干货知识(数据类型与变量+ 条件与循环+函数与模块+文件+异常+OOP)
12 0
|
17天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:策略梯度方法
使用Python实现深度学习模型:策略梯度方法
15 0