所以这是用户输入的提示,它工作得很好。我在控制台上打印了一些名称和相关的(1个)数字,供用户选择。我也可以通过输入q来选择退出。 数字有效的条件是a)它是一个数字,b)它小于或等于名称数量且大于0。
while True:
number = str(input("Enter number, or q to quit. \n"))
if number == "q":
sys.exit()
try:
number = int(number)
except:
continue
if number <= len(list_of_names) and number > 0:
name = list_of_names[number-1]
break
此代码没有问题,除了我发现它很难阅读,而且不是很漂亮。由于我是python的新手,我想问你们,你们如何更干净地编写这个提示?更具体一点:我如何要求用户输入字符串或整数?
答案 0 :(得分:1)
简单地说它。
number = str(input("Enter number, or q to quit. \n"))
number = number.lower()
这将使q小写如此,如果他们按下移动它是无关紧要的,如果他们按下别的东西只是做一个if语句设置一个while循环为真。
答案 1 :(得分:1)
更简单一点:
while True:
choice = str(input("Enter number, or q to quit. \n"))
if choice.lower() == "q":
sys.exit()
elif choice.isdigit() and (0 < int(choice) <= len(list_of_names)):
name = list_of_names[int(choice)-1]
break