2011-11-08 4 views
-2
def characterLine(firstChar,secondChar,phrase): 
    '\n' + ((str(firstChar)+str(secondChar))*(len(phrase)/2)+len(phrase)%2* firstChar) 

그래서 코드의 두 번째 부분은 표시하지만 라인 스킵와을 연결하려고 할 때, 그것은 표시하지 않습니다 "없음."왜이 항목이 None으로 표시됩니까?

왜 이런 일이 발생했는지 설명 할 수 있습니까?

+2

올바른 형식의 전체 코드가 필요합니다. – orlp

+3

@Matt Ball :'s/concatentate/concatenate'? – orlp

+0

왜 파이썬 코드를 작성하고 있습니까? –

답변

3

당신이 characterLine(..)의 반환 값을 인쇄하려는 경우, 즉

print characterLine(...) 

당신이 당신의 표현의 앞에 return 키워드를 사용하지 않기 때문에이 None를 인쇄합니다.

def characterLine(firstChar,secondChar,phrase): 
    return '\n' + ((str(firstChar)+str(secondChar))*(len(phrase)/2)+len(phrase)%2* firstChar) 

을 설정하면 없음 이외의 값을 반환해야합니다 (이 당신이 다음 print를 할 수 있습니다).

+0

나는'lambda' 문법을 보았고'def' 문법과 혼동했을지도 모른다. 그러나 나는 그 부분을'lambda'에서 제거 할 것입니다. –

+0

Gotcha. 나는 포스트가 그것없이 아직도 더 낫다고 생각한다. +1 코드의 나머지 줄에 그냥 싸여있어 나머지 우리와는 달리 그의 문제를 발견하기위한 +1 :) – agf

0

는, 함수는 마지막으로 return None을 기본 암시 두십시오.

return-statementNone를 반환합니다.

그래서 함수에 return 문을 추가하기 만하면됩니다. 나머지는 괜찮아 보입니다. 행운을 빌어 요 :-)

관련 문제