Python 3.5、在集合中查找用户输入的值并显示它们
Python 3.5, Finding user inputted values in a set and displaying them
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.")
如果在用户输入中找到任何元音,或者如果有 none,代码将输出元音,打印一条消息。目前,如果用户在打印 "No vowels entered" 行时输入了多个元音,则该代码不起作用。这个毛病怎么改。
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.")
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.")
如果在用户输入中找到任何元音,或者如果有 none,代码将输出元音,打印一条消息。目前,如果用户在打印 "No vowels entered" 行时输入了多个元音,则该代码不起作用。这个毛病怎么改。
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.")