Python 跳出嵌套循环的5种方法_pythonwhile嵌套循环

liftword4个月前 (02-20)技术文章31

很多人说 Python 是给很优雅的语言,但凡事都有个弱点,有些时候对于某种情况,用 Python 实现起来却不那么"优雅"。

例如下面的例子,我们想要跳出这个嵌套循环:


关键词 break 只能跳出这个循环中的内循环。那有没有什么方法一次性跳出所有循环? Python 里有没有哪个内置的关键词可以实现呢?

不幸的的是,没有。

有句老话讲的好,"没有对比就没有伤害", Python 做不到,其它的语言却可以,比如万人鄙视的 PHP:


在 PHP 里 break 关键词后面跟着一个数组,表示要跳出循环的次数,默认值是1,表示跳出一次循环。

这是一个很简洁命令的解决方案,这里必须夸一句 PHP,这里它表现的不错。

不过 Python 毕竟是很灵活的语言,我们有很多方法可以解决上面的问题,下面我就介绍 5 中跳出嵌套循环的方法。

1. 使用"旗帜"变量

这是个有效的解决方案,我们定义一个变量,作为一个"旗帜",例如:


如上面的代码,break_out_flag 作为一个"旗手"告诉这个程序该跳出这个外循环了。

这个代码在执行上没什么问题,不过这显得我们的代码有点乱,因为我们引用了新的变量去解决这个问题,这个新变量并非非要引入的。

2. 引发异常

如果 break 关键词不能达到我们的期望,那么是否可以引入其他的操作呢,比如 Python 的异常处理技术,我们可以使用它跳出嵌套循环:


就如上面代码所示,我们把异常"exception"当做关键词 break 使用,这样就可以一次跳出所有循环。

3. 使用相同的条件语句

由于一个条件语句可以中断一次循环,那么使用相同的条件语句同样也可以再一次中断一个循环,例如:


上面的代码可行,但并不是一个好的解决方案,至少在效率上很差,因为重复执行一个条件语句会浪费很多时间。

4. 使用 For-Else 语句

Python 里有一个很特殊的语句:"for-else"。 它并不流行以至于很少有人知道它,因为习惯上 else 是搭配 if 来使用。

不过对于这个问题,它却是很有帮助:


上面的代码中显示了 for-else 语句的优势,因为 else 下面的语句只有当内循环执行完成并没有任何中断的时候才执行。

如果对 for-else 还不熟悉,可以看一下下面的代码,是 for-else "翻译"过来的写法:


总之,这个方法很可以,就是 for-else 这种形式不好理解。

5. 将嵌套循环放在一个函数里

如果我们将嵌套循环放在一个函数中,那么跳出嵌套循环是非常简单的,因为我们可以使用 return 这个关键词替代 break


如上所示,这个解决方案就显得更加优雅了,既不需要"旗帜"变量,也不需要异常处理或是 for-else 语法以及多余的条件判断。

函数的用法在 Python 里是很灵活的,我们可以很容易的创建一个嵌套函数或是一个闭包函数。如果这个跳出嵌套循环的函数在调用它的函数里只使用一次,那么我们可以这样写:


不过,使用嵌套函数看起来并不怎么"优雅"。

总结

这里我们了解了5种跳出嵌套循环的方法,虽然每种方法都没有 PHP 来的简单直接,但我们也是可以实现这样的操作地。作为编程人员我们应该了解语言的特性,在不同情况下用不同的方法解决问题。

最后感谢阅读,如果此文对您有帮助,请点赞或添加关注。

相关文章

Python 循环详解教程 (Python Loop Tutorial)

在 Python 中,循环结构帮助我们自动重复执行代码(automatically execute the code repetitively),大大提高了编程效率!本教程将通过详细示例(Throug...

非常详细的基础讲解:Python for循环及基础用法(较长建议收藏)

今天为大家带来的内容是:非常详细的基础讲解:Python for循环及基础用法(较长建议收藏)文章内容主要为大家介绍python for 循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐...

一文掌握Python 中的迭代器_python3迭代器

1. 迭代器简介在 Python 编程领域,迭代器在简化数据处理和提高代码效率方面发挥着关键作用。在 Python 中,迭代器是一个对象,它允许程序员遍历集合的所有元素,而不管其特定结构如何。了解迭代...

学习编程第148天 python编程循环的嵌套使用

今天学习的是刘金玉老师零基础Python教程第32期,主要内容是python编程循环的嵌套使用。(一)一维数组及输出#一维数组list1=["110001","四川二流子","男","55"]list...

面向初学者的 Python(控制结构:Python 中的循环)

什么是循环?循环是只要满足指定条件即可重复代码块的控制结构。Python 支持两种主要类型的循环: for 循环和 while 循环。使用for循环for 循环用于循环访问序列(如列表、元组、字典、集...

python中的流程控制与循环_python常见的流程控制结构有哪几种?

条件语句的构成由if、elif、else组成,根据其组成分支数量不同,分为单分支结构、二分支结构、和多分支结构1.单分支结构单分支结构由一个if语句组成,后面跟随条件表达式,如果条件成立则立即执行指定...