首页 > 编程语言 >python跳出多层for循环的方法

python跳出多层for循环的方法

时间:2024-01-08 19:32:49浏览次数:43  
标签:跳出 10 python 多层 else break range 循环 ttt

在业务逻辑中有时候会遇到两层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就不会执行。也是个很新奇的做法。

标签:跳出,10,python,多层,else,break,range,循环,ttt
From: https://blog.51cto.com/u_14246112/9149644

相关文章

  • Mac安装Python3.12开发环境
    官网https://www.python.org/downloads/安装pythonpython-3.12.1-macos11.pkg下载后,安装一直下一步即可验证是否安装成功,执行python3命令和pip3命令配置环境变量获取python3安装位置并配置在.bash_profile#查看python路径whichpython3#修改配置文件.bash_profileopen-e.bash......
  • 如何写一个python脚本读取控制台类型的程序上面的文本
     在Python中,你可以使用`input()`函数来读取控制台输入的文本。这个函数会等待用户在控制台输入文本,并将其作为字符串返回给你的程序。下面是一个示例,演示了如何编写一个Python脚本来读取控制台输入的文本:```python#读取控制台输入的文本text=input("请输入文本:")print("你......
  • python如何通过cmd创建虚拟环境
    Python是一种十分流行的编程语言,它具有易于学习、开发效率高、强大的库支持等优点。在Python开发过程中,虚拟环境是一种非常重要的概念。通过虚拟环境,我们可以在同一台机器上同时运行多个Python项目,并且这些项目之间互不干扰。本文将介绍如何使用cmd命令行工具创建Python虚......
  • 如何在 Python 中安装 json 模块
    Python是一种功能强大的编程语言,自带了许多标准库,其中json模块是用于处理JSON数据的模块。在Python中安装json模块非常简单,因为它是标准库的一部分,不需要额外的安装步骤。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,并且易于机器解析和生成。Python的......
  • 浅谈Python内置对象类型——数字篇
    在Python中,数字是一种内置的对象类型,用于表示数值。Python提供了多种内置的数字类型,包括整数、浮点数、复数等。这些数字类型具有不同的属性和方法,以满足各种数值计算的需求。一、整数整数是正或负整数,不带小数点。在Python中,可以使用十进制、二进制、八进制和十六进制表示整数。例......
  • Python面向对象三大特性之封装
    【一】面向对象的三大特性面向对象编程有三大特性:封装、继承、多态其中最重要的一个特性就是封装。封装指的就是把数据与功能都整合到一起听起来是不是很熟悉,没错,我们之前所说的”整合“二字其实就是封装的通俗说法。除此之外,针对封装到对象或者类中的属性,我们还可以......
  • Python 面向对象
    面向对象技术简介类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量......
  • python爬虫之创建属于自己的ip代理池
    在后续需求数据量比较大的情况下,自建一个ip代理池可以帮助我们获得更多的数据。下面我来介绍一下整个过程1.找到目标代理网站https://www.dailiservers.com/go/websharehttps://proxyscrape.com/https://spys.one/https://free-proxy-list.net/http://free-proxy.cz/en/https:......
  • python爬虫进阶篇(异步)
    学习完前面的基础知识后,我们会发现这些爬虫的效率实在是太低了。那么我们需要学习一些新的爬虫方式来进行信息的获取。异步        使用python3.7后的版本中的异步进行爬取,多线程虽然快,但是异步才是爬虫真爱。基本概念讲解1.什么是异步?        异步是指在程序执行......
  • C# 调用 Python (.exe) 程序
      C#调用Python有常见的四种方法,之所以选择这种,是因为相对简单,并且出错率低、适用范围广  熟悉Python开发的人都知道,在写Python程序时免不了有使用第三方库,这里也是调用python程序最容易出错的地方  当然.exe的方式也造成了最大的性能损失下面以终端程序为例核心代码usi......