我是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!')发布于 2020-07-01 03:29:28
简单的改变
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循环终止,而不是主循环。
发布于 2020-07-01 03:33:12
这里有几个基本的错误。我会按照你的程序执行的顺序去做。
您没有递增循环变量。
您已经使用j和k开始了循环变量(为什么不使用i和j?)设置为零,并根据这些变量的值进行循环。因为它们永远不会递增,所以您的循环永远不会遇到退出条件。
您可以在相应循环的末尾使用j += 1和k += 1递增变量。
你的循环是"unpythonic“的
这些通常会像我下面的示例一样编写。您不需要单独声明i,或者在这里递增它。Python会为您处理这些问题。
for i in range(0, 3):
...您正在打印不返回任何内容的函数。
您的main函数没有返回值,因此调用print(main())是毫无意义的。您可以将其替换为简单的main(),除非您将main()更改为具有某种return "foo"语句。
https://stackoverflow.com/questions/62664849
复制相似问题