如果输入空白行,我只想退出程序。我需要什么?
我已经尝试过sys.exit()了,但这并没有退出程序,只是返回了一个空白
while True: # Ask for patient ID
try:
i = int(input("Enter patient ID (or blank to exit): "))
if not i:
sys.exit()
else:
a = len(str(abs(i))) # Checking valid integer
if a != 6: # Checking id is six digits
print("Enter valid patient ID (six digit positive integer)")
else:
break
except ValueError:
print("Enter valid patient ID (six digit positive integer)")
我只是希望程序退出。
答案 0 :(得分:3)
您的错误是您正在读取输入并将其立即转换为整数!您需要检查字符串格式的空白输入,然后将其转换为数字。
import sys
while True: # Ask for patient ID
try:
#Get the user's input as a string.
inpu = input("Enter patient ID (or blank to exit): ")
#If it's blank, exit.
if inpu == "":
sys.exit(0)
else:
#Now convert the inputed string into an integer.
i = int(inpu)
a = len(str(abs(i))) # Checking valid integer
if a != 6: # Checking id is six digits
print("Enter valid patient ID (six digit positive integer)")
else:
break
except ValueError:
print("Enter valid patient ID (six digit positive integer)")
答案 1 :(得分:0)
如果出现错误: sys.exit(1) 另外,如果成功运行,则可以使用 sys.exit()或 sys.exit(0)
但是您的代码应类似于:
while True: # Ask for patient ID
try:
i = raw_input("Enter patient ID (or blank to exit): ")
if len(i) == 0:
sys.exit()
else:
a = len(str(abs(i))) # Checking valid integer
if a != 6: # Checking id is six digits
print("Enter valid patient ID (six digit positive integer)")
else:
break
except ValueError:
print("Enter valid patient ID (six digit positive integer)")
也许用输入替换raw_input
希望可以为您提供帮助,
祝你有美好的一天。