加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 编程开发 > Python > 正文

在Python中循环退出

发布时间:2021-01-17 07:24:25 所属栏目:Python 来源:互联网
导读:在下面的代码中,我希望while循环在b c = 1000时立即退出.但是,使用print语句进行测试表明它只会持续到for循环完成.我尝试过True,然后在if语句中设置False,但这导致无限循环.我认为使用x = 0然后设置x = 1可能会起作用,但这也只是运行直到for循环结束.什么是最

在下面的代码中,我希望while循环在b c = 1000时立即退出.但是,使用print语句进行测试表明它只会持续到for循环完成.我尝试过True,然后在if语句中设置False,但这导致无限循环.我认为使用x = 0然后设置x = 1可能会起作用,但这也只是运行直到for循环结束.什么是最优雅,最快速的退出方式?谢谢.

a = 3
b = 4
c = 5
x = 0
while x != 1:
    for a in range(3,500):
        for b in range(a+1,500):
            c = (a**2 + b**2)**0.5
            if a + b + c == 1000:
                print a,b,c
                print a*b*c
                x = 1

解决方法

while循环仅在控件返回时才匹配条件,即完全执行for循环时.所以,这就是为什么你的程序即使满足条件也不会立即退出.

但是,如果a,c的任何值都没有满足条件,那么你的代码将以无限循环结束.

你应该在这里使用一个函数,因为return语句可以满足你的要求.

def func(a,c):
    for a in range(3,c
                print a*b*c
                return # causes your function to exit,and return a value to caller

func(3,4,5)

除了@Sukrit Kalra的answer之外,他还使用了退出标志,如果你的程序在该代码块之后没有任何代码,你也可以使用sys.exit().

import sys
a = 3
b = 4
c = 5
for a in range(3,500):
    for b in range(a+1,500):
        c = (a**2 + b**2)**0.5
        if a + b + c == 1000:
            print a,c
            print a*b*c
            sys.exit()     #stops the script

有关sys.exit的帮助:

>>> print sys.exit.__doc__
exit([status])

Exit the interpreter by raising SystemExit(status).
If the status is omitted or None,it defaults to zero (i.e.,success).
If the status is numeric,it will be used as the system exit status.
If it is another kind of object,it will be printed and the system
exit status will be one (i.e.,failure).

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读