如何使用while循环按enter键退出python程序



程序在按下回车键时保持循环。

程序在preesin输入时打印再见,但随后继续循环返回

按下回车键(不使用break(时,如何退出?

choice = input("Enter selection:,n "
"(X) exit,n "
"(1) Celsius to kelvin,n "
"(2) celsius to fahrenheit,n "
"(3) kelvin to celsius,n "
"(4) kelvin to fahrenheit,n "
"(5) fahrenhiet to celsius,n "
"(6) fahrenheit to kelvinn")
choice = choice.upper()
while choice[0] != "X" :     
if choice[0] == '1':
celsius = input("Enter Celsius(integer), or press enter to exit")
while celsius:
celsius = int(celsius)
#function to convert Celsius to kelvin
answer = cel_to_kel(celsius)
print("Kelvin is ", answer)
celsius = input("Enter celsius, or press enter to exit")
print("Goodbye")

您可以尝试使用:

while 1:
celsius = input("Enter celsius, or press enter to exit")
if not celsius:
break
#function to convert Celsius to kelvin
answer = cel_to_kel(int(celsius))
print("Kelvin is ", answer)
print("Goodbye")

放入一个if语句来查看值:

if celsius == "":
break

按enter键返回一个带有输入的空字符串,因此使用if语句可以检查它是否为空。在那之后,它就像打破循环(或者做其他你想做的事情(一样简单。

问题

问题是你有两个不同条件的循环:

choice = input()
while choice != "X":
if choice == "1":
celsius = input()
while celsius:
...
celsius = input()

一旦用户没有向celsius输入任何内容,内部循环就会停止。但由于choice从未改变,外循环将永远运行。

解决方案"只有一种选择">

如果你想让程序在内部循环结束后退出,那么你可以完全删除外部循环:

choice = input()
if choice == "1":
celsius = input()
while celsius:
...
celsius = input()

解决方案"在选项之间切换">

如果你想让用户选择切换到不同的转换类型,那么在主循环的末尾添加另一个input

choice = input()
while choice != "X":
if choice == "1":
celsius = input()
while celsius:
...
celsius = input()
choice = input()

解决方案"无循环选择">

如果您希望用户独立选择每个转换的类型,则删除内部循环:

choice = input()
while choice != "X":
if choice == "1":
celsius = input()
if celsius:
...            
choice = input()

最新更新