在编写时,我们时常遇到一种情况,就是某种情况时代码运行到某个地方就够了,后面的不想运行了。本文就一些个人经验进行了以下归纳总结。
一、for、while
for 与 while 在python 中都是进行循环的操作,具体的细节不过多赘述,简单举几个例子
可以看到,我们只需要小于2的 i ,当 i 超过2的范围时,我们通过break 打断这个循环。
二、def
以及使用return 打断函数
基础理论理解,开始扩展
那么问题来了,当出现双层循环时,即我有两层循环,当内循环满足某个条件时同时终止两个循环。以及当我的函数在某个类中,我想终止函数的同时将整个类都终止,该如何做呢?
较为常见的方法当然是设置一个标记值。
a=0
for i in range(4):for j in range(4):print('s',i,j)if i*j==4:print(i,j)break
a=0
for i in range(4):for j in range(4):print('s',i,j)if i*j==4:a=1print(i,j)breakif a==1:break
=============================================================
class ss():def __init__(self):a=self.aa()self.bb()def aa(self):print(1)return 1print(2)def bb(self):print(3)print(4)
ss()
class ss():def __init__(self):a=self.aa()if a==1:returnself.bb()def aa(self):print(1)return 1print(2)def bb(self):print(3)print(4)
ss()
这种方法的好处是标记值可以由我们自己决定,我们可以根据设置标记值设立不同的处理机制。
但是当我们只是单纯的想要终止程序时,是否有更简单的方法呢?
答案是有的,那就是故意写错(doge)。
简单的终止
利用报错令程序中断,缺点是丑了一点,优点是简单粗暴
for i in range(4):for j in range(4):print('s',i,j)if i*j==4: print(i,j)print(1+'ss')
--> TypeError: unsupported operand type(s) for +: 'int' and 'str'
当然这样会比较丑,因为报错信息一般都会比较长,稍微美化一下,既然报错是我们刻意造成的,那么我们自然也知道报的是什么错,使用try..except..
try:for i in range(4):for j in range(4):print('s',i,j)if i*j==4: print(i,j)print(1+'ss')
except TypeError:print('out')
就可以优雅简单的中断了。