2016-11-09 7 views
0
from collections import Counter 

inp = input("Please enter some text: ") 
vowels = set("aeiouAEIOU") 

if inp in vowels: 
    res = Counter(c for c in inp if c in vowels) 
    print (res.most_common()) 

elif inp not in vowels: 
    print("No vowels entered.") 

コードは、ユーザーの入力に見つかった場合は母音を出力し、存在しない場合はメッセージを出力します。現在、 "No vowels entered"という行を印刷するときに、複数の母音が入力された場合、コードは機能しません。どのようにしてこの欠陥を修正できるかPython 3.5、ユーザー入力値を1組で見つけて表示する

答えて

2

ブロックinpが母音の部分文字列である場合にのみ、ブロックが実行されます。この場合には、母音のように、共有文字をチェックするためには、あなたが使用することができany

if any(i in vowels for i in inp): 
    ... 

またはSET交差点:あなたは、単に最初のCounterオブジェクトを構築する構築することができます

if vowels.intersection(inp): 
    ... 

、およびそれは二回入力に反復を避けるために、空だかどうかをテスト:

res = Counter(c for c in inp if c in vowels) 
if res: 
    print(res.most_common(2)) # specify a parameter to avoid printing everything 
else: 
    print("No vowels entered.") 
+0

を私はまったく同じラインの変更:)ジャン・フラン@ –

+0

遅すぎるだけ少し思い付きましたそれは起こる:) –

+1

は不平を言っていない。今日は良い質問とupvoted答えの完全だった:) –

関連する問題