创建五个数字的列表

时间:2017-02-20 21:28:50

标签: python list add

我试图让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并要求用户输入五个数字。但是,如果我输入多个号码,则表示无效,如果我只输入一个号码,则表示谢谢并再次显示菜单。我哪里错了?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

使用Python 2.7 input()将输入评估为Python代码,这就是您遇到错误的原因。 raw_input()返回用户输入的逐字字符串。在python 3中你可以使用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)

答案 2 :(得分:0)

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