如何清楚地要求用户输入并允许多种类型?
How to cleanly ask user for input and allow several types?
所以这是一个用户输入提示,它工作得很好。我正在将一些名称和关联的(基于 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 的新手,我想请教各位,如何更干净地编写此提示?更具体地说:我如何要求用户输入可以是字符串或整数的输入?
小写一下。
number = str(input("Enter number, or q to quit. \n"))
number = number.lower()
这将使 q 变为小写,因此如果他们按 shift 键也没有关系,如果他们按其他键,只需创建一个将 while 循环设置为 true 的 if 语句即可。
简单一点:
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
所以这是一个用户输入提示,它工作得很好。我正在将一些名称和关联的(基于 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 的新手,我想请教各位,如何更干净地编写此提示?更具体地说:我如何要求用户输入可以是字符串或整数的输入?
小写一下。
number = str(input("Enter number, or q to quit. \n"))
number = number.lower()
这将使 q 变为小写,因此如果他们按 shift 键也没有关系,如果他们按其他键,只需创建一个将 while 循环设置为 true 的 if 语句即可。
简单一点:
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