TypeError: slice indices must be integers or None or have an __index__ method
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)