我是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!')
答案 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)
您在这里有几个基本错误。我将按照您的程序执行顺序进行操作。
您已将j
和k
(为什么i
和j
设为零)开始循环变量,并根据的值进行循环这些变量。由于它们永远不会递增,因此您的循环永远不会遇到退出条件。
您可以在各个循环的末尾使用j += 1
和k += 1
来递增变量。
这些通常作为下面的示例编写。您无需分别声明i
或在此处进行递增。 Python为您处理。
for i in range(0, 3):
...
您的main函数没有返回值,因此调用print(main())
毫无意义。除非将main()
更改为具有某种main()
语句,否则可以用return "foo"
代替。