Python 3.5,在集合中查找用户输入的值并显示它们

时间:2016-11-09 21:07:34

标签: python if-statement input set counter

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.")

代码用于输出元音,如果在用户输入中找到任何元音,或者如果没有,则打印消息。目前,如果用户在打印“没有元音输入”行时输入了多个元音,则代码不起作用。如何纠正这个错误。

1 个答案:

答案 0 :(得分:2)

if块只有在inp是元音的子串时才会执行。为了检查共享字符,例如本例中的元音,您可以使用any

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

或设置交叉点:

if vowels.intersection(inp):
    ...

您也可以先构建Counter对象,然后测试它是否为空以避免对输入进行两次迭代:

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.")