我遇到了让while循环工作的问题。我使用next = y命令来启动程序,但是在我编写的末尾(next == y)再次运行main函数时,这个位似乎不起作用。即使我输入' n'或任何不是' y',该功能仍然重复。我的想法是,最初的next = y over骑了所有东西,但我似乎无法删除它,否则代码只会运行并且在没有运行的情况下中断。
next = "y"
def main():
operator = input("Select a function and press enter (+, - , *, /) ")
if(operator != "+" and operator != "-" and operator != "*"and operator >!= "/"):
print(input("You must enter a valid operator "))
else:
val1 = int(input("Select value 1 "))
val2 = int(input("Select value 2 "))
if(operator == "+"):
print(add(val1, val2))
elif(operator == "-"):
print(sub(val1, val2))
elif(operator == "*"):
print(mult(val1, val2))
else:
print(div(val1, val2))
next = (input("Would you like to do another calculation? (y/n): "))
while(next == "y"):
main()
我认为这是一个简单的修复,但我不知道如何做到这一点。
答案 0 :(得分:1)
接下来是主函数中的局部变量。您可以将其设为全局(坏习惯),也可以在return next
函数末尾添加main
。然后你需要在你的循环中做这样的事情:
while next == 'y':
next = main()
答案 1 :(得分:1)
首先,您应该注意async def
对于变量名称来说是一个糟糕的选择,因为它会覆盖内置函数next
- 考虑类似next
等等。
无论如何,这里的代码结构应该如何:
user_choice
每次def main():
# Do calculations
choice = 'y'
while choice == 'y':
main()
choice = input("Would you like do another calculation? (y/n): ")
完成后,系统都会要求用户输入main()
,然后循环结束。如果选择为y / n
,则会再次运行 - 否则,它将退出循环。
答案 2 :(得分:0)
声明
next = (input("Would you like to do another calculation? (y/n): "))
需要在while
循环中移动。实际上,它只被设置一次。 (你应该只看到提示一次。)
答案 3 :(得分:0)
Next是Python中的内置函数。首先选择正确的变量名称是一种很好的做法。您可以在另一个名称旁边更改变量名称。如果您在while循环后询问用户的选择,您的程序将运行良好:
while(next == "y"):
main()
**next = (input("Would you like to do another calculation? (y/n): "))**
所以当你第一次运行程序时:
步骤1:选择一项功能,然后按Enter键
第2步:选择值1
第3步:选择值2
步骤4:打印功能值
第5步:您想再做一次计算
步骤6:如果是,则转到步骤1,否则退出程序