2013-10-10 3 views
0

나는 x가 [10,20,30,40,50] 인 목록을 가지고 있습니다.이것도 반환 이유 없음

>>> x=[10,20,30,40,50] 
>>> print(list(range(len(x)))) 
[0, 1, 2, 3, 4] 

나는 function에 위 놨는데 그것을 실행하는 것 같다
그래서 x의 LEN 그래서 다음과 같은 말이 있습니다 5.
입니다.
출력에 여분의 None이 있습니까?

def foo(aList): 
    listLen = len(aList) 
    for x in list(range(listLen)): 
     print(x) 

x=[10,20,30,40,50] 
print(foo(x)) 

편집
나는 목록을 반전의 작업에 위의를 적용하는 경우가 있으므로 없음 문제가 발생하지 않습니다 잘 보인다는 :

def foo(aList): 
    newList = [] 
    listLen = len(aList) 
    for x in list(range(listLen)): 
     newList.append(aList[listLen-(x+1)]) 
    return newList 

x=[10,20,30,40,50] 
print(foo(x)) 
+2

왜 함수가 이미 목록 요소를 인쇄하는 경우'print (foo (x)) '를 사용하고 있습니까? – alexvassel

+0

부수적으로,'it'를 반복하기 위해'range'를'list'에 포함 할 필요가 없습니다. – DzinX

답변

2

print는 데이터를 전송 표준 출력 (대개 터미널). print 실제로 함수에서 아무것도 반환하지 않습니다. 그렇게하려면 return 키워드가 필요합니다. 함수 내에서 결과가 print이고 None (기본값)을 반환합니다. 함수 외부의 print 문은 None 인 해당 반환 값을 인쇄합니다.

해결 방법은 아마 요소를 인쇄하는 대신 함수에서 목록을 반환하는 것입니다. 그런 다음 함수 밖에서 인쇄 할 수 있습니다. 의 라인을 따라 뭔가 :

def foo(aList): 
    listLen = len(aList) 
    return list(range(listLen)) 

x=[10,20,30,40,50] 
print(foo(x)) 
2
print(foo(x)) 

이것은 당신의 foo는() 함수의 반환 값을 출력합니다. 그러나 foo()는 아무 것도 반환하지 않으며, 암묵적으로 반환 값이 없음을 의미합니다.

def foo(aList): 
    listLen = len(aList) 
    return list(range(listLen)): 

x=[10,20,30,40,50] 
print(foo(x)) 
2

당신은 foo는에서 반환 값을 인쇄하고 명시 적 return 문이없는 기능이 없음을 반환하지 않습니다 : 그래서 당신은 인쇄 "없음"

이 아마도 당신이 원하는 단지 줄을 종료합니다.

1
print(foo(x)) 

이는 사용자의 기능이 반환하는 것을 인쇄합니다. 함수는 목록을 인쇄하고 아무 것도 반환하지 않습니다.

따라서 인쇄되는 목록은 사용자의 기능이 인쇄하는 목록입니다. 인쇄 기능이 없음을 인쇄합니다.

이 기능은 원하는대로 수행해야합니다.

def foo(aList): 
    newList = [] 
    listLen = len(aList) 
    return range(listLen) 

x=[10,20,30,40,50] 
print foo(x) 

당신의 기능 목록을 반환하고 인쇄 문을 인쇄합니다.


또 다른 방법은 인쇄 기능을 호출하는 것입니다.

def foo(aList): 
    listLen = len(aList) 
    for x in list(range(listLen)): 
     print(x) 

x=[10,20,30,40,50] 
foo(x) 
+1

여기에서 작성한 목록의 첫 번째 값을 반환합니다. 나머지 값은 비공개 가비지 컬렉터가없는 상태로 사라집니다. 나는 그것이 OP가 원하는 것을 의심한다 ;-) – mgilson

+0

아아! 가비지 컬렉터, 사악한 블랙홀. 나는 중력 중화제를 넣었다. 목록 값은 이제 안전합니다. :디 – shshank