列表没有输入第一个输入

时间:2016-08-10 00:22:44

标签: python list python-2.7 raw-input

我是菜鸟,我正在研究这个python项目,我不能在用我的代码数组中输入用户输入的第一个输入。提前致谢 这是我的代码:

def ask():
    user_input = raw_input("Enter a number: ")
    user_input_array = []
    count = 0
    quits = 'done'

    while user_input != quits:
        user_input = raw_input("Enter a number: ")
        try:
            if type(user_input) == str:
                num = int(user_input)
                user_input_array.append(num)
                count = count + 1

        except:
            print("Invalid input")

    while user_input == quits:
        #user_input_array.remove('done')
        print ("done")
        print ('Count: ', count)
        print (user_input_array)
        break
ask()

3 个答案:

答案 0 :(得分:1)

那是因为你从未把它放在那里。

def ask():
    user_input = raw_input("Enter a number: ")
    user_input_array = [user_input] # Create the list with the original input
    ...

使用上述内容,创建列表时,用户输入的第一个内容将放在列表中。您可能希望在此之前进行检查

答案 1 :(得分:0)

  def ask():
        user_input = raw_input("Enter a number: ")
        user_input_array = []
        count = 0 
        quits = 'done'

        while user_input != quits:
            user_input = raw_input("Enter a number: ")
            try:
                if type(user_input) == str:
                    num = int(user_input)
                    user_input_array.append(num)
                    count = count + 1 

            except:
                    if user_input == quits:
                            #user_input_array.remove('done')
                            print ("done")
                            print ('Count: ', count)
                            print (user_input_array)
                    else:
                            print("Invalid input")


    ask()

答案 2 :(得分:0)

您不会将初始输入添加到数组中。而是进入循环并请求另一个输入并检查然后将其添加到数组。您应该在循环中询问所有输入,因为这意味着您只需要一个raw_input和一个检查完成值。

执行此操作的常用方法是进入无限循环,仅在读取值done时退出。像这样

def ask():

    user_input_array = []

    while True:

        user_input = raw_input("Enter a number: ")

        if user_input == 'done':
            break

        try:
            user_input_array.append(int(user_input))    
        except ValueError:
            print("Invalid input")

    print ("done")
    print ('Count: ', len(user_input_array))
    print (user_input_array)

ask()

请注意,这样可以实现所需的效果而不会重复。您也不需要计算添加的元素数量,因为列表中有一个len函数可以告诉您。