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和学习列表的新手。我无法找出以下程序中的错误(数字的选择排序):


正如在注释中提到的,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']