sentence = input("What is your sentence?")
sentence=sentence.capitalize()
counta = sentence.count("a")
counte = sentence.count("e")
counti = sentence.count("i")
counto= sentence.count ("o")
countu= sentence.count ("u")
countA2 = sentence.count("A")
countE2 = sentence.count("E")
countI2 = sentence.count("I")
countO2 = sentence.count("O")
countU2 = sentence.count("U")
countI3 = sentence.count(" I ")
countspaces = sentence.count(" ")
a1 = sentence.count("!")
a2 = sentence.count(".")
a3 = sentence.count(">")
a4 = sentence.count("<")
a5 = sentence.count(":")
a6= sentence.count(";")
a7 = sentence.count("'")
a8 = sentence.count("@")
a9 = sentence.count("#")
a10 = sentence.count("~")
a11= sentence.count("{")
a12= sentence.count("}")
a13= sentence.count("[")
a14 = sentence.count("]")
a15 = sentence.count("-")
a16 = sentence.count("_")
a17 = sentence.count("+")
a18 = sentence.count("=")
a19 = sentence.count("£")
a20 = sentence.count("$")
a21= sentence.count("%")
a22 = sentence.count("^")
a23= sentence.count("&")
a24 = sentence.count("(")
a25= sentence.count(")")
a26=sentence.count("?")
count = (counta + counte + counti + counto + countu + countA2 + countE2 + countI2 + countO2 + countU2 + countI3)
speci= a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13+a14+a15+a16+a17+a18+a19+a20+a21+a22+a23+a24+a25+a26)
print(sentence)
print("This has", speci, "special characters")
print("This has", countspaces, "Spaces")
print("This has", count, "vowels")
ご覧のとおり、上記のコードは長すぎます。私は同じこと(ユーザ入力文であり、母音、空白、特殊文字を数えます)を行う方法は分かりませんが、コードの行数は少なくなります。あなたがより良い方法を知っているなら。教えてください。もちろん、コーディングはすべて最高のコードに関するものであり、これは最良の方法であるために奇妙に見えます。キーとして母音で辞書を作る、母音の場合このコードの長さを短くする方法はありますか?同じことをしますか?
spaces = sentence.count(' ')
、その後、行く:スペースの場合
special_char = 0
for i in sentence:
if i.isalpha() == False and i.isdigit() == False:
special_char += 1
を:あなたの助け
です優れたことをしたい。改善の準備ができている人はたくさんいますが、[codereview.se]で待ち合わせをしています。そこに幸運!また、あなたのコードが何をしているのかを説明して、よりよくレビューできるようにするのも良い考えです。 – zondo
私は、それぞれのケース(例えば、 'vowels = 'aeiou')に対して文字列を持つことから始め、現在の暗黙的ではなく入力に対して繰り返します(' for char in sentence.lower(): ')あなたが探している文字の繰り返し。 – jonrsharpe
また、 'from collections import Counter'と' Counter( 'これは例文です')の結果に注意してください。これは役に立つかもしれません。 – jonrsharpe