2014-07-15 4 views
-2

방금이 메서드를 .pop()로 시도했는데 문서에서 "목록의 지정된 위치에있는 항목을 제거하고 반환해야합니다. 그것." 나는 라오 (호, 0) 반환하는 경우보고 싶었다 제거 내가 생각했던, 이것은 그대로 'A'가 어떻게 갔는지메서드 list.pop는 의도 한 값 대신 None을 반환합니다.

def lao(li, i): 
    guess=input('Have a guess: ') 
    if guess == li[i]: 
     li.pop(i) 

ho=list('abcde') 

:

그래서 나는 다음과 같은 코드를 시도
>>> print(lao(ho, 0)) 
Have a guess: a 
None 

>>> ho 
['b', 'c', 'd', 'e'] 

'a'가 제거되었으므로 .pop() 메서드가 실행되었지만 메서드가 'a'를 반환하지 않았으므로 None을 반환했습니다. 이유를 모르겠습니까?

답변

2

변경 li.pop(i)-return li.pop(i). 파이썬 함수는 기본적으로 None을 반환합니다 (return 문이 없거나 도달하지 않은 경우). 함수에서 무엇인가를 반환하려면 return 키워드를 사용해야합니다. demo on Ideone을 참조하십시오.

+0

좋아, 어떻게 하필 나야! 감사합니다 :) – pineappleexpress

0

return li.pop(i)일까요?

아마도이 방법은 올바르게 작동하고 있습니다. 단지 실제 값을 반환하지 않는 것입니다.

+0

그래, 지금 완벽하게 작동합니다, 감사합니다! – pineappleexpress

관련 문제