def insertion_sort(list):
for index in range(1,len(list)):
value = list[index]
i = index - 1
while i>=0:
if value < list[i]:
list[i+1] = list[i]
list[i] = value
i = i - 1
else:
break
a = [7,1,3,5,9,2,3]
print(insertion_sort(a))
此代码取自Khan Academy video。然而,当我试着自己在Jupyter笔记本和空闲的时候,它什么也不输出。我不明白为什么和视频里的一模一样。 谢谢你的帮助。你知道吗
你的函数没有
return
语句。如果函数没有显式地return
任何内容,它总是返回None
。你知道吗几乎可以肯定,这个函数不会返回任何东西。你知道吗
请注意,函数会在适当的位置改变其参数:
在Python中,执行此操作的函数通常不返回任何内容。例如,请参阅
list.sort
和list.append
等内置方法。你知道吗注意,in the cited video,这正是指导者所做的,他们不
print
,他们只是调用它,然后查看变量的值。你知道吗另外,通常情况下,对值进行就地变异的函数(如本函数)采用命令式动词,如list方法^{} ,而保持参数不变但返回转换值的函数采用过去分词,如内置函数^{} 。你知道吗
因此,如果这个函数名为
insertion_sorted
,Python程序员会希望它不使用参数,而是返回一个新的排序列表;因为它名为insertion_sort
,所以他们会希望它对参数进行适当排序,而不返回任何内容。你知道吗相关问题 更多 >
编程相关推荐