TypeError:切片索引必須為整數或無,或具有__index__方法
def merge_sore(lists): if len(lists) <= 1: return lists num = len(lists) / 2 left = merge_sore(lists[:num]) right = merge_sore(lists[num:]) return merge(left,right)
出錯原因:除號使用/,改成//就好,
在Python2.x中,使用/,整數相除為整數,會把小數部分忽略,浮點數相除會保留小數部分
在Python3.x中,使用/,整數與浮點數相除都是浮點數
使用//,在Python2.x、Python3.x中都一樣,取整除法,會忽略小數部分,向下取整
print(5/3) print(5//3)
1.6666666666666667
1
def merge_sore(lists): if len(lists) <= 1: return lists num = len(lists) // 2 left = merge_sore(lists[:num]) right = merge_sore(lists[num:]) return merge(left,right)