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.")
代码用于输出元音,如果在用户输入中找到任何元音,或者如果没有,则打印消息。目前,如果用户在打印“没有元音输入”行时输入了多个元音,则代码不起作用。如何纠正这个错误。
答案 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.")