创建一个包含五个数字的列表

Creating a list of five numbers

我试图让 Python 提示用户选择五个号码并将它们存储在系统中。到目前为止我有:

def main():
    choice = displayMenu()
    while choice != '4':
        if choice == '1':
            createList()
        elif choice == '2':
            print(createList)
        elif choice == '3':
            searchList()
        choice = displayMenu()

    print("Thanks for playing!")


def displayMenu():
    myChoice = '0'
    while myChoice != '1' and myChoice != '2' \
                  and myChoice != '3' and myChoice != '4':
         print ("""Please choose
                        1. Create a new list of 5 integers
                        2. Display the list
                        3. Search the list
                        4. Quit
                        """)
         myChoice = input("Enter option-->")

         if myChoice != '1' and myChoice != '2' and \
            myChoice != '3' and myChoice != '4':
             print("Invalid option. Please select again.")

    return myChoice 

#This is where I need it to ask the user to give five numbers 

def createList():
    newList = []
    while True:
        try:
            num = (int(input("Give me five numbers:")))
            if num < 0:
                Exception

            print("Thank you")
            break
        except:
            print("Invalid. Try again...")

    for i in range(5):
        newList.append(random.randint(0,9))
    return newList

一旦我 运行 程序允许我选择选项 1 并要求用户输入五个数字。但是,如果我输入多个数字,它会说无效,如果我只输入一个数字,它会说谢谢并再次显示菜单。我哪里错了?

使用 raw_input() 而不是 input()。

With Python 2.7 input() 将输入计算为 Python 代码,这就是您出错的原因。 raw_input() returns 用户输入的逐字字符串。在python3中可以使用input(),raw_input()没了。

    my_input = raw_input("Give me five numbers:")  # or input() for Python 3
    numbers = [int(num) for num in my_input.split(' ')]
    print(numbers)

@DmitryShilyaev 已正确诊断出问题。如果你想在一行中读取 5 个数字,你可以使用 split 拆分 input returns 的字符串,并将该列表的每个元素转换为 int .

numbers = [int(x) for x in raw_input("Give me five numbers: ").split()]

假设用户输入由空格分隔的数字,这将起作用。