python - Function output not printing? -


trying see whether functions work, tried printing out see whether random list sorted, nothing seems printed. how measure time takes sort list out?

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=[] in range(100):     newlist.append(random.randint(1,1000))    val = mergesort(newlist) print (val) 

nothing outputted, why?

you blew indentation. here's correct version:

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) 

in version posted, have main body of routine still inside if statement, after return. means can never execute. if look, should find program did print something, value none.


Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -