2017-11-30 2 views
-4
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

당신은, 일관된 의문이 산책을하십시오 번역 할 수 있을까요? – timgeb

+1

들여 쓰기를 수정하십시오. 'return' 문이 실제로 루프 안에 있어야합니까? – scrpy

+1

'k for lista : listb.append (k)'는 훨씬 더 깨끗합니다. 가능하면 인덱스가 아닌 값을 반복합니다. – chepner

답변

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()) 
관련 문제