如何干净地询问用户输入并允许多种类型?

时间:2016-08-09 15:44:14

标签: python python-3.x coding-style code-cleanup

所以这是用户输入的提示,它工作得很好。我在控制台上打印了一些名称和相关的(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的新手,我想问你们,你们如何更干净地编写这个提示?更具体一点:我如何要求用户输入字符串或整数?

2 个答案:

答案 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