功能输出不打印?

时间:2016-02-08 22:37:53

标签: python function

试图看看这些功能是否有效,我试着打印出来看是否可以对随机列表进行排序,但似乎没有打印出来。另外,我如何衡量排序列表所需的时间?

import random
import time
def mergeSort(mylist):
    if len(mylist) <= 1:
        return mylist
        mid = len(mylist) // 2
        left = mergeSort(mylist[:mid])
        right = mergeSort(mylist[mid:])
        return merge(left,right)


def merge(left,right):
    if not left:
        return right
    if not right:
        return left
    if left[0] < right[0]:
        return [left[0]]+merge(left[1:],right)
    else:
        return [right[0]]+merge(left,right[1:])
newList=[]
for i in range(100):
    newList.append(random.randint(1,1000))



val = mergeSort(newList)
print (val)

没有输出,为什么?

1 个答案:

答案 0 :(得分:6)

你吹了你的缩进。这是正确的版本:

def mergeSort(mylist):
    if len(mylist) <= 1:
        return mylist
    mid = len(mylist) // 2
    left = mergeSort(mylist[:mid])
    right = mergeSort(mylist[mid:])
    return merge(left,right)

在您发布的版本中,例程的主体仍在 if 语句中,但在返回之后。这意味着它永远不会执行。如果你看,你应该发现你的程序 打印了一些东西,值