[英]Breaking out of a while loop
我是 python 和编程的新手,并且难以摆脱调用几个函数的 while 循环。 我尝试了各种不同的选项,但它们都以相同的方式结束,它们并没有结束它只是继续运行。 我只是在这里,因为我已经研究并尝试了很长时间来解决这个问题。 下面是一些您可以看到可能与 function 混淆的代码。 我不会只发布最后一部分的完整程序。 感谢您在我学习期间提供的任何帮助。 这也是我第一次发帖,过去一年我一直在使用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!')
简单地改变
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
,即使它会,该while
循环中的break
语句只会使该while 循环终止,而不是主循环。
您在这里有几个基本错误。 我将按照您的程序执行顺序为 go。
您已经开始循环变量,其中j
和k
(为什么不i
和j
?)设置为零,并根据这些变量的值循环。 由于它们永远不会递增,因此您的循环永远不会遇到退出条件。
您可以在相应循环结束时使用j += 1
和k += 1
递增变量。
这些通常会写成我下面的例子。 您不需要单独声明i
或在此处增加它。 Python 为您处理。
for i in range(0, 3):
...
您的主要 function 没有返回值,因此调用print(main())
是无稽之谈。 您可以简单地用main()
替换它,除非您将main()
更改为具有某种return "foo"
语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.