Python 名称错误:名称';排序';没有定义
我是Python和学习列表的新手。我无法找出以下程序中的错误(数字的选择排序):Python 名称错误:名称';排序';没有定义,python,list,sorting,Python,List,Sorting,我是Python和学习列表的新手。我无法找出以下程序中的错误(数字的选择排序): 正如在注释中提到的,Python是解释的,因此您需要在使用时定义事物。只需将您的代码更改为此,它就可以工作: def sorting(final_input): count = 0 while True: final_output[count] = min(final_input) final_input = final_input.remove(min(
正如在注释中提到的,Python是解释的,因此您需要在使用时定义事物。只需将您的代码更改为此,它就可以工作:
def sorting(final_input):
count = 0
while True:
final_output[count] = min(final_input)
final_input = final_input.remove(min(final_input))
count += 1
if count == len(final_input):
break
return(final_output)
final_input = []
while True:
user_input = input("Enter number or quit: ")
if user_input == "quit":
break
final_input.append(user_input)
print(final_input)
sorting(final_input)
编辑代码:
我将函数移到顶部,这样在调用之前就可以定义它了
在函数中,您试图final_output[count]=value
,以创建一个列表。这在python中不起作用。有多种“类似数组的数据结构”。像这样创建一个空列表:final\u output=[]
。然后,您可以通过执行final\u output+=[value]
或final\u output.append(value)
来添加到它。如果您知道创建列表时所有的值将是什么,您还可以执行final\u output=[value1,value2,value3]
我在“quit”周围添加了语音标记,以防止字符串被误解为“enternumber,或quittheprogram”,或“enternumber”或“quit:”。我还将其设置为不再区分大小写或标点符号
结果:
这是您想要的结果吗?在前面定义函数(在上面的行中)你使用它。我想发表与@Rockybilly相同的评论。但要扩展一点:Python的解释与某些编译器不同,Python解释器只传递一次输入,因此在使用时需要存在一些东西。Python是解释语言,你在定义它之前调用了
排序
函数旁注:为什么你是在缩进10个空格吗?约定只有4个。你到底在问什么?你想让我们解释一下列表吗?你想让我们调试你的代码吗?试着弄清楚你在问什么以及你需要什么样的答案。我为你调试了你的代码,我希望我能帮上忙,但如果你清楚你想让人们放什么,那么它会的让我们更容易给出答案。谢谢你的解释。谢谢你的解释。
def sorting(final_input):
count = 0
while True:
final_output[count] = min(final_input)
final_input = final_input.remove(min(final_input))
count += 1
if count == len(final_input):
break
return(final_output)
final_input = []
while True:
user_input = input("Enter number or quit: ")
if user_input == "quit":
break
final_input.append(user_input)
print(final_input)
sorting(final_input)
def sorting(final_input):
final_output=[]
while 0 != len(final_input):
final_output+= [min(final_input)]
final_input.remove(min(final_input))
return(final_output)
final_input = []
while True:
user_input = input("Enter number or \"quit\": ")#
if "quit"in user_input.lower():################## I only changed these lines because I feel the program is more neat like this.
break
final_input.append(user_input)
print(final_input)
print(sorting(final_input))
Enter number or "quit": 8
Enter number or "quit": 3
Enter number or "quit": 9
Enter number or "quit": 0
Enter number or "quit": Quit.
['8', '3', '9', '0']
['0', '3', '8', '9']