For Loop在Python中的Function中不起作用

时间:2017-11-30 12:57:20

标签: python

lista=[4, 22, 5, 6, 32, 81, 729, 56, 77, 31]   
listb=[]

for k in range(len(lista)):
       listb.append(k) 
def cs():




   for i  in range(9):
              print(i)
              if lista[i]<lista[i+1]:
                print(i)
                listb[i]=lista[i]
                lista[i]=listb[i]
                i+=1
              else:

                listb[i]=lista[i+1]
                lista[i+1]=lista[i]
                lista[i]=listb[i]
              return(lista)   

print(cs())

实际上Iam对列表进行排序,如果我将相同的代码放在函数内部,它就无法正常工作。但是如果我将相同的代码放在函数外面它就能正常工作。请帮助我

1 个答案:

答案 0 :(得分:0)

return语句应该移到你函数的for循环之外,你也应该整理你的空白,如下所示:

lista=[4, 22, 5, 6, 32, 81, 729, 56, 77, 31]   
listb=[]

for k in range(len(lista)):
    listb.append(k) 

def cs():
    for i in range(9):
        print(i)
        if lista[i]<lista[i+1]:
            print(i)
            listb[i]=lista[i]
            lista[i]=listb[i]
            i+=1
        else:
            listb[i]=lista[i+1]
            lista[i+1]=lista[i]
            lista[i]=listb[i]
    return(lista)   

print(cs())