我创建了一个函数,它从用户获取整数列表并对它们进行冒泡排序。 这是我得到的错误:
“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
答案 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"
包含双引号。