TEL:400-8793-956
当前位置:程序、服务器

Python TypeError:“ NoneType”类型的对象没有len()

提问者: 近期获赞: 浏览人数: 发布时间:2021-02-01 12:50:46

 问:我无法在以下代码中找到问题所在,错误消息是“类型为“ NoneType”的对象没有len ()”

 
我的代码------>
 
A=[31,22,14,15]
def merge(list1,list2):
    output=[]
    i=0
    j=0
    length1=len(list1)
    length2=len(list2)
    while i<length1 or j<length2:
       
        if i<length1 and  j<length2:
            if list1[i] < list2[j]:
                output +=[list1[i]]
                i +=1
            else:
                output +=[list2[j]]
                j +=1
      
        elif i<length1:
              output +=[list1[i]]
              i +=1
              
        else:
                output +=[list2[j]]
                j+=1
        
    
def merge_sort(list1):
    if len(list1)<=1:
        return list1
    else:
        mid=int(len(list1)/2)
        left =list1[:mid]
        right=list1[mid:]
        sorted_left=merge_sort(left)
        sorted_right=merge_sort(right)
        return merge(sorted_left,sorted_right)
def print_it(lista):
    merge_sort(lista)
    print "OutPut : ",output
    
    
print_it(A)
 
 
答:您使用的代码是正确的,只是问题是“缩进错误”,这是由于您使用的IDE而引起的,我使用的是pycharm IDE。您可以使用以下代码:
A=[31,22,14,15]
def merge(list1,list2):
    output=[]
    i=0
    j=0
    length1=len(list1)
    length2=len(list2)
    while i<length1 or j<length2:
       
        if i<length1 and  j<length2:
            if list1[i] < list2[j]:
                output +=[list1[i]]
                i +=1
            else:
                output +=[list2[j]]
                j +=1
      
        elif i<length1:
              output +=[list1[i]]
              i +=1
              
        else:
                output +=[list2[j]]
                j+=1
        
    
def merge_sort(list1):
    if len(list1)<=1:
        return list1
    else:
        mid=int(len(list1)/2)
        left =list1[:mid]
        right=list1[mid:]
        sorted_left=merge_sort(left)
        sorted_right=merge_sort(right)
        return merge(sorted_left,sorted_right)
def print_it(lista):
    merge_sort(lista)
    print "OutPut : ",output
    
    
print_it(A)
上一篇: 循环变量执行后
下一篇: 如何制作可放入导航栏的小部件?