2016-10-20 3 views
-3

は、文字列を受け取り、 が文字列(大文字または小文字 )に子音の数を返すcount_engcons()という関数を定義します。この問題では、英語のアルファベットのみの文字しか使用できません。また、この問題では、 "Y"は が子音と考えられています(母音ではありません)。したがって、たとえば count_engcons("Tessellated?")7を返し、 count_engcons("Aeiou!")0を返します。 forループを使用する必要があります。 この問題に対して.count()メソッドを使用することはできません。定義ヘルプcount_engcons

私はこれを試してみました:

def count_engcons(x): 
    vowels = ("aeiou") 
    count = 0 

    for count_engcons in text: 
     if not count_engcons in vowels: 
      count += 1 
    return x 

はしかし、それはエラーが発生します。

ありがとう、downvoteのためのjonrsharpe。

+0

これはチュートリアルサービスではありません。あなたが書いたコードに問題がある場合は、[mcve]を与えてください。 * "エラーが発生する" *はまったく使用されません。つまり、関数内で変数名を読み返すべきです... – jonrsharpe

+0

名前を再利用しないでください。 'count_engcons'はすでにあなたの関数の名前なので、' for'節でそれを使わないでください –

答えて

-1

、あなたはまた、別の変数名の文字列(xtext)にアクセスしようとしていた文字が母音でなかった場合はチェックして、それはそのよう!?などの文字に悪い結果を与えるだろう、なりますも意味ない。

def count_engcons(text): 
    consonants = "bcdfghijklmnpqrstvwxyz" 
    count = 0 

    for c in text.lower(): 
     if c in consonants: 
      count += 1 

    return count 
+0

Omg、ありがとう!!! – Joseph

+0

この問題にもお手伝いできますか? – Joseph

+0

文字列のタプルをとり、タプル内の最短文字列を返すshortest()という関数を定義します。 例えば、shortest(( "" xyz "、" w "、" abc "))は" w "を返します。 同じ最大長の複数の文字列がある場合は、関数が返す文字列には関係ありません。例えば、最短の( "uno"、 "dva"、 "drei"、 "vier"))が "uno"を返すなら、それは問題ありません。 "dva"を返すなら、それもOKです。 – Joseph

関連する問題