def countConsonant (s):
"""Count consonants.
'y' and 'Y' are not consonants.
Params: s (string)
Returns: (int) #consonants in s (either case)
"""
# do not use a brute force solution:
# think of a short elegant solution (mine is 5 lines long);
# do not use lines longer than 80 characters long
# INSERT YOUR CODE HERE, replacing 'pass'
countConsonant = 0
for index in s:
if index == 'bcdfghjklmnpqrstvwxyz':
countConsonant += 1
return countConsonant
print (countConsonant ('"Carpe diem", every day.')) # should return 8
-7
A
答えて
3
==
は平等をチェックし、それはおそらくあなたが望むものではありません。メンバシップを確認するには、in
演算子を使用する必要があります。この場合、文字列内の文字のメンバシップです。 x
は、会員がy
に存在している場合は、オペランドまたは1つがチェックされている
if x in y:
:それは、この一般的な構文に従います。この場合には、これにあなたのif
文を交換することを適用する:特定の文字が与えられた子音の文字列である場合
if index in 'bcdfghjklmnpqrstvwxyz':
これは、チェックします。また、注意すべきことは、小文字のみをチェックすることです。
if index.lower() in 'bcdfghjklmnpqrstvwxyz':
これはチェックするとき、文字列の小文字を行います:それはCarpe diem
でC
は、ケースの試みを無視するには9の結果を与えて無視されることを意味します。あなたはs内のすべての文字を反復処理しているの文
for index in s:
で
0
。だから、条件
if index == 'bcdfghjklmnpqrstvwxyz':
はこれまでFalse
に評価し、機能はすべてのケースでは0を返します。
文字列内の文字のメンバーシップをチェックするには、==
ではなくin
演算子を使用する必要があります。この演算子は値の等しいかどうかをチェックします。
アルゴリズムが大文字小文字を区別しない場合は、入力を小文字にするか、すべての対応する大文字を文字列'bcdfghjklmnpqrstvwxz'
に追加することができます。 'y'
と'Y'
はあなたの要件に応じて子音ではないので、文字列'bcdfghjklmnpqrstvwxyz'
からy
を削除する必要があります。最後のコードは
def countConsonant (s):
"""Count consonants.
'y' and 'Y' are not consonants.
Params: s (string)
Returns: (int) #consonants in s (either case)
"""
countConsonant = 0
for index in s.lower():
if index in 'bcdfghjklmnpqrstvwxz':
countConsonant += 1
return countConsonant
print (countConsonant ('"Carpe diem", every day.')) # should return 8
関連する問題
- 1. 私のコードに何が問題なのですか?
- 2. 私のSVGコードに何が問題なのですか?
- 3. 私のコードに何が問題なのですか? perimeter.c
- 4. 私のコードで何が問題になっていますか?
- 5. 問題97 - プロジェクトオイラー:私のコードで何が問題になっていますか?
- 6. 私のコード "vba"に何が問題なのです
- 7. 私の日付コードに何か問題がありますか?
- 8. 私のコードに何か問題がありますか?
- 9. 私のC++コードがコードブロック上で何が問題になっていますか?
- 10. (のpython)私のコードの何が問題になってい
- 11. 私のコードに何の問題がありますか?-js
- 12. Cコードのマクロ定義に何が問題なのですか?
- 13. ローリングクラップスのコードに何が問題なのですか?
- 14. 販売管理のコードに何が問題なのですか?
- 15. 私のコードで何が問題になっていますか?ランクスコアのMySQL、PHP
- 16. Pythonの継承:私のコードで何が問題になっていますか?
- 17. 私のC#コードで何が問題になっていますか?タイプの
- 18. パングラム機能の私のコードで何が問題になっていますか?
- 19. 私のPHP登録コードに何か問題があります
- 20. 私のシンプルなインサートには何が問題なのですか?
- 21. このjQueryコードで何が問題になりますか?
- 22. コードに何が問題なのですか?
- 23. このコードで何が問題になっていますか?
- 24. このコードで何が問題になっていますか?
- 25. このコードで何が問題になりますか?セグメンテーションフォールト:11
- 26. このpreg_matchコードで何が問題になりますか?
- 27. このコードで何が問題になっていますか?
- 28. このコードで何が問題になっていますか?
- 29. Cメモリアドレス - コードに何が問題なのですか?
- 30. このコードで何が問題になっていますか?
です。デバッグのヘルプ(「**なぜこのコードは動作しないのですか?**)」には、目的の動作、特定の問題またはエラー、およびそれを再現するのに必要な最短コードが含まれている必要があります。 **質問自体に**。 **明確な問題文**のない質問は他の読者には役に立たない。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve) – Biffen