Python检查单词是否属于

2024-10-01 02:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要你帮我做一个小程序。 程序检查一个单词是否为真、假或无效参数。 例如,我输入e_silaba(ALO),它会根据元音字母验证单词是否可能。在

  • 我的第一个问题是,我必须选择我的字符串(单词)的大小吗?

  • 我有什么更好的方法来判断这个词是否不属于“元音”?我知道我的做法是错误的,但我找不到解决办法。。

  • 我检查单词是否正确的方法只验证了前两个位置,我认为发送垃圾邮件不是个好主意,而且到处都是。有没有一种方法可以很容易地逐一验证字符串的每个位置,以检查它是否属于,在本例中是“元音”。在

元音=[“A”,“E”,“I”,“O”,“U”]

def e_silaba(word):

   if word[0] in vogal or word[1] in vowel:
     return True
   elif word not in vowel:
     return False
   else:
     print "e_word:invalid argument"

Tags: 方法字符串in程序参数return错误字母
3条回答

如果您想通过检查单词是否包含元音来验证该单词是否为单词,请使用以下for循环:

for letter in word:
    if letter.upper() in vowel:
        return True
return False

这将检查单词中的每个字母(不考虑长度)以查看它是否在列表中的元音中。还要注意,它检查字母.上(),它将字母转换为其大写版本,以便与您的大写元音列表进行精确比较。如果它到达单词末尾时没有返回True,则表示它没有遇到任何元音,然后将返回false。在

只是为了把@ChrisüRands的精彩评论写成一个答案:最简单的方法是将元音列表转换为set,并使用any()word.lower()中的字母与之进行比较:

vowels = set("aeiou")
def e_silaba(word):
    return any(x in vowels for x in word.lower())

如果要确保单词不完全由元音组成,可以使用以下解决方案:

^{pr2}$

这将排除实际上是单词的“a”和“i”。作为最后一个示例,如果您只想检查至少包含两个字符的单词的条件,请使用以下命令:

vowels = set("aeiou")
def e_silaba(word):
    if len(word) > 1 and all(x in vowels for x in word.lower()):
        return False
    else:
        return any(x in vowels for x in word.lower())

希望这足以说明如何添加更多的条件。在

如果您想检查word是否只包含字母字符,可以对其使用.isalpha()方法。就您的函数而言,您可以使用以下集合来解决它:

vowels = set('aeoiu')
def e_silaba(word):
    if (set(word.lower()).issubset(vowels)):
        return True
    else:
        return False

它所做的是首先用.lower()方法将word中的所有字母都小写,对新的小写单词中的所有字符进行一个集合,并检查这些字符是否是使用.issubset()方法设置的元音的子集。在

您甚至不需要创建这个函数并显式返回True或{}。您可以简单地使用set(word.lower()).issubset(vowels),它本身是一个布尔表达式,将返回True或{}。在

相关问题 更多 >