当前位置: 首页 > 知识库问答 >
问题:

检测元音vs辅音在Python[重复]

乐正育
2023-03-14

我在这里犯了什么愚蠢的错误,阻止我确定用户输入的第一个字母是辅音?无论我输入什么,它都允许第一个字母是元音。

original = raw_input('Enter a word:')
word = original.lower()
first = word[0]

if len(original) > 0 and original.isalpha():
    if first == "a" or "e" or "i" or "o" or "u":
        print "vowel"
    else:
        print "consonant"
else:
    print "empty"

共有3个答案

阎唯
2023-03-14

您的问题是first==“a”或“e”被评估为(first==“a”)或“e”,因此您总是会得到'e',这是一个True语句,导致打印“元音”。另一种方法是:

original = raw_input('Enter a word:')
word = original.lower()
first = word[0]

if len(original) > 0 and original.isalpha():
    if first in 'aeiou':
        print "vowel"
    else:
        print "consonant"
else:
    print "empty"
仉伟兆
2023-03-14

您在if语句中所做的是检查首先==“a”是否为真,然后检查“e”是否为真,它始终为真,因此if语句的计算结果始终为真。
您应该做的是:

if first == "a" or first == "e" ...

或者更好:

if first in "aeiou":
赵禄
2023-03-14

更改:

if first == "a" or "e" or "i" or "o" or "u":

到:

if first in ('a', 'e', 'i', 'o', 'u'):  #or `if first in 'aeiou'`

first=="a"或"e"或"i"或"o"或"u"总是True,因为它被计算为

(first==“a”)或(“e”)或(“i”)或(“o”)或(“u”),因为非空字符串始终为True,所以该值被计算为True。

>>> bool('e')
True
 类似资料:
  • 问题内容: 我在这里犯了什么愚蠢的错误,使我无法确定用户输入的第一个字母是辅音?不管我输入什么,它都可以确定第一个字母是元音。 问题答案: 更改: 至: 总是因为它被评估为 ,因为非空字符串始终为True,因此将其评估为True。

  • 本文向大家介绍如何在Python中检测元音与辅音?,包括了如何在Python中检测元音与辅音?的使用技巧和注意事项,需要的朋友参考一下 首先,您应该检查字符是否为字母。然后,您可以创建一个元音列表,并使用该列表检查字符是否为元音。如果没有,那一定是辅音。例如, 这将给出输出:

  • 样本输出字符串:检测到汉娜输出元音的最后一部分:检测到辅音:h n n h

  • 我做了一个程序来计算输入字符串中元音和辅音的数量: 当“y”本身是辅音时,它应该是元音。我在哪里陈述?

  • 我不知道如何同时有元音和辅音。代码的元音部分工作正常。我不知道如何添加辅音。 我似乎无法理解代码的辅音部分

  • 在循环结束时,我计划显示句子中辅音和元音的数量。我想知道是否有更有效的方法来检查给定句子中有多少辅音和元音,而不是使用if语句手动输入每个字母。(key指的是我已经初始化的扫描仪) 编辑:它需要忽略数字和其他特殊字符,例如,如果我写你好@你好吗?。应该有8个元音和6个辅音。