如果输入字符串中未检测到元音,则添加错误

时间:2017-11-05 16:21:56

标签: python

我正在编写一个程序,它应该输入并输出最常见的元音,如下所示:

while True:

    string = input("Enter a line of text: ")
    vowel = "aeiouAEIOU"

    x = Counter(c for c in string.upper() if c in vowel)
    most = {k: x[k] for k in x if x[k] == max(x.values())}

    for i in most:
        vowel = i
        y = most [i]
        print("The most frequently occurring vowel in the string is: " ,vowel, "with ,y, "occurrences.")

    break

但如果输入中没有元音,我无法弄清楚如何输出错误信息。我试过了:

if vowel != string:
    print("Error, no vowels were detected in the user input.")
    continue

但这不起作用。如果我把它放在输出最常见元音的部分之前,那么无论输入什么,错误信息都会显示并且输入再次开始。如果我把它放在那之后,则检测到元音并且最常见的是打印,但它会继续显示错误消息并重新启动输入而不是破坏程序。

如何编写错误以便它查看输入以查看其中是否有任何元音并显示错误(如果没有)?

1 个答案:

答案 0 :(得分:2)

由于您已经拥有所有元音的计数器(x),因此检查(再次)用户输入是否包含元音将是一种浪费。您只需检查x是否为空(即,它没有计算任何元音):

if not x:
    print("Error, no vowels were detected in the user input.")
    continue

此外,请考虑从.upper()删除c for c in string.upper() if c in vowel或从vowel = "aeiouAEIOU"删除小写字母。保持两者是不必要的。