2016-09-18 2 views
-4
def eCount (s): 

    """Count the e's in a string, using for loop. 

    Params: s (string) 
    Returns: (int) #e in s, either lowercase or uppercase 
    """ 

    # INSERT YOUR CODE HERE, replacing 'pass' 

교수는 위의 내용을 변경하지 말 것을 요청합니다.파이썬에서 for 루프를 사용하여 문자열에서 문자를 대문자와 소문자로 계산하십시오.

count = 0 
for e in s: 
    count +=1 
return count 

그것은 제공 :

(executing lines 1 to 17 of "e_count_103.py") 

15 
+2

'의에서 전자에 대한'당신이하지 생각하지 않습니다. 각 반복에서'e'의 값을 출력 해보십시오. 또한 실제로 질문하지 않았습니다. – roganjosh

+0

'return s.lower(). count ('e')'또는'return s.upper(). count ('E')'시도해보십시오 –

답변

2

이 같은 count()을 시도 할 수 있습니다 : 나는 달성하기 위해 노력하고있어 파이썬 3에서 return s.lower().count('e')

:

def eCount(s): 
    return s.lower().count('e') 
s = "helloEeeeeE" 
print(eCount(s)) 

출력 :

7 

문자열을 소문자 또는 대문자로 지정할 수 있습니다. (대문자의 경우 s.upper().count('E')을 사용할 수 있습니다.) 자세한 내용은 String count() tutorial을 참조하십시오.

아니면 for 루프를 사용하려면 다음 (파이썬 3)이 시도가 :

def eCount(s): 
    count = 0 
    s = s.lower() 
    for i in s: 
     if i == 'e': 
      count+=1 
    return count 
s = "helloEeeeeE" 
print(eCount(s)) 

이 같은 출력을 제공 :

7 

참고 : 당신이 사용e 이 진술의 코드 : for e in s:'e'이 아니지만 변수 e이므로 문자 수를 반복합니다. s는 문자열에서 매번 count 변수를 증가시킵니다. 이 Python - emulate sum() using list comprehension을 확인할 수 있습니다리스트 통합에 대한 자세한 내용은

def eCount(s): 
    return sum([1 for i in s if i == 'e' or i == 'E']) 
s = "helloEeeeeE" 
print(eCount(s)) 

:

또한 지능형리스트를 사용할 수 있습니다.

+1

누군가의 과제에 답하는 이유는 무엇입니까? 게다가, OP가 'for e in s'로 어려움을 겪고 있다면, 어쨌든 당신의 코드를 제출하지 않고 도망 가지 않을 것입니다. – roganjosh

+0

왜 인덱스 기반 루핑을 제안 하시겠습니까? 응. –

+0

@ Stefan Pochmann 죄송합니다. 내 답변을 업데이트했습니다. 나는 C++의 습관을 추측합니다. 감사. –

1

for 루프를 사용 :

def eCount(s): 
    count = 0 
    for c in s: 
     if c in ('e', 'E'): 
      count += 1 
    return count 
관련 문제