2012-04-23 2 views
0

문자열 내에 'e'문자를 찾으려면 다음 코드를 사용하십시오. False 문자열 내에서 'e'가 발견되면 반송하십시오. True은 'e'를 찾을 수 없습니다. :검색 기능이 실제로 검색되지 않습니다.

내 이해 당으로
def has_no_e(word): 
    for letter in word: 
     if letter == 'e': 
      return False 
     return True 

, 하나 word 하나 내에서 문자를 액세스하고 if letter == 'e'

내가 프로그램을 실행할 때마다입니다 내가 설정 한 조건에 대해이를 확인합니다 for 루프, for 루프는 첫 번째 문자 만 검사하는 것 같습니다. 몇 가지 이유!

따라서 has_no_e('dde','e')과 함께 함수를 호출하면 결과는 True이됩니다. 하지만 난 주위 has_no_e('edd','e')을 전환하는 경우는 False

나는 86 윈도우 7 궁극의 머신에서 파이썬 2.7.3을 실행하는거야 ... 감사

답변

3
return True 

for 루프의 몸 안에 돌아갑니다 그래서 첫 번째 문자가 'e'인지 확인한 후 즉시 실행됩니다 (첫 문자가 e이 아니면 False을 반환하지 않는 한).

+0

감사합니다. 그게 도움이 – tamiromara

+0

괜찮아요하지만 @ DanielRoseman에 의해 답변을 참조하십시오 그것은 바퀴를 다시 발명하지 않는 것이 가장 좋습니다 : D – jamylak

3

return이 들여 쓰기 잘못되었습니다. (for와 동일한 수준으로) 끝내면 작동합니다.

+0

고마워. 들여 쓰기 반환은 응답이었다! 학습하는 동안 얼마나 바보 같은 사람이 될 수 있는지는 놀랍습니다. P – tamiromara

7

다른 사람들은 오류를 지적했지만 다른 모든 기능은 지나치게 복잡합니다. 다음과 같이하면됩니다.

def has_no_e(word): 
    return 'e' not in word 
+0

niiiice. 그런 프로그래밍 정신을 개발하는 데는 시간이 걸릴 것입니다. 나는 여전히 Python과 프로그래밍에 새로운 점이 많다. 다시 한 번 감사드립니다. – tamiromara

관련 문제