2016-09-18 3 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' 

教授は上記の変更を求めません。 私が達成しようとしている:Pythonのforループを使用して文字列内の文字(大文字と小文字の両方)をカウントします。

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

それが与える:

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

15 
+2

'sの中の電子のために:'あなたはそれがないと思う何をしません。それぞれの反復で 'e'の値を表示してみてください。また、あなたは実際に質問していません。 – roganjosh

+0

'return s.lower()。count( 'e')'または 'return s.upper()。count( 'E')'これを試してください –

答えて

2

をあなたのようcount()を試すことができます:python 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ループを使用したい場合は、その後(のpython 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が 'のために苦労しているなら、とにかくあなたのコードを提出することで逃げるつもりはありません。 – 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 
関連する問題