突破while循环

时间:2020-06-30 19:27:44

标签: python while-loop break

我是python和编程的新手,很难突破调用一些函数的while循环。我尝试了多种不同的选择,但是它们都以相同的方式结束,但是他们并没有结束它而只是继续运行。我之所以在这里,是因为我一直在认真研究并尝试解决此问题。下面是一些代码,您可以在其中看到与函数的混淆。我不将整个程序发布到最后。谢谢您在我学习期间的任何帮助。这也是我的第一次发布,过去一年来我一直在使用stackoverflow。

def main():
        choice = input('''Hello,
Would you like to do basic math or return an average?
Please select 1 for basic math and 2 for average and 3 to quit:

''')
        if choice == '1':
            print(performCalculation())

        elif choice == '2':
            print(calculateAverage())

        elif choice == '3':
            print(main())

j = 0
k = 0
while j < 3:
    print(main())
    while k == 3:
        break
print('All Done!')

2 个答案:

答案 0 :(得分:0)

只需更改

j = 0
k = 0
while j < 3:
    print(main())
    while k == 3:
        break
print('All Done!')

j = 0

while j < 3:
    print(main())
    j += 1
    
print('All Done!')

while循环永不中断的原因是因为您拥有while j < 3:,但是您从未更改过j的值,因此,如果开头的值较小,它将永远较小。

此外,k永远不会等于3,即使如果它将等于 { {1}}循环只会在循环终止时使那个,而不是主要终止。

答案 1 :(得分:0)

您在这里有几个基本错误。我将按照您的程序执行顺序进行操作。

您不会增加循环变量。

您已将jk(为什么ij设为零)开始循环变量,并根据的值进行循环这些变量。由于它们永远不会递增,因此您的循环永远不会遇到退出条件。

您可以在各个循环的末尾使用j += 1k += 1来递增变量。

您的循环是“ unpythonic”的

这些通常作为下面的示例编写。您无需分别声明i或在此处进行递增。 Python为您处理。

for i in range(0, 3):
    ...

您正在打印不返回任何内容的函数。

您的main函数没有返回值,因此调用print(main())毫无意义。除非将main()更改为具有某种main()语句,否则可以用return "foo"代替。