python中的各种打断方式、终止代码
python终止代码方法
·
在编写时,我们时常遇到一种情况,就是某种情况时代码运行到某个地方就够了,后面的不想运行了。本文就一些个人经验进行了以下归纳总结。
一、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=1
print(i,j)
break
if a==1:
break
=============================================================
class ss():
def __init__(self):
a=self.aa()
self.bb()
def aa(self):
print(1)
return 1
print(2)
def bb(self):
print(3)
print(4)
ss()
class ss():
def __init__(self):
a=self.aa()
if a==1:return
self.bb()
def aa(self):
print(1)
return 1
print(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')
就可以优雅简单的中断了。
更多推荐
所有评论(0)