输入有问题

时间:2016-01-12 13:34:51

标签: python python-2.7

我创建了一个函数,它从用户获取整数列表并对它们进行冒泡排序。 这是我得到的错误:

  

“input2 = input(”请输入一些由退格分隔的数字:“)   档案“”,第1行1 0 3 2 5 4“

def ex2():
    list2= []
    input2= input("Please enter some numbers separated by backspace: ")
    list2_input = input2.split()

    for i in list2_input:
        list2.append(i)

    for i in range(0, len(list2)-1):
        for j in range(0, len(list2)- 1 - i):
            list2[j], list2[j] = list2[j+1], list2[j]
    print list2

3 个答案:

答案 0 :(得分:4)

在Python 2.7中,form.titleMap接受用户的输入并在其上运行input。如果文本不是有效的Python表达式,它将崩溃。

“1 0 3 2 5 4”不是有效的Python表达式,因此如果用户在eval提示符处输入该表达式,则会崩溃。

要在没有input的情况下从用户那里获取输入,请使用eval代替raw_input

答案 1 :(得分:1)

如果您不想对输入用途进行任何自动评估:

raw_input("Please enter some numbers separated by backspace: ")

这是一个只会在Python 2.7中出现的问题,因为2.7 raw_input已在Python 3中重命名为input

如果你在Python 2.7中调用输入,则会调用:

eval(raw_input("Please enter some numbers separated by backspace: "))

正如您在以下链接中看到的那样: https://docs.python.org/2/library/functions.html#eval evals计算检查表达式参数是否被解析并作为Python表达式进行求值。

答案 2 :(得分:0)

input(...)等效于eval(raw_input(prompt))。

所以请改用raw_input或输入"1 0 3 2 4 5"包含双引号。