Python - 检查单词是否属于

时间:2017-10-23 12:19:46

标签: python string python-3.x

我需要你帮助我制作一个小程序。 程序检查单词是True,False还是无效参数。 例如,我输入e_silaba(ALO)并根据元音中的字母验证单词是否可行。

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

  • 我还有什么更好的方式来看看这个词是否属于"元音"?我知道我的方式是错的,但我无法找到解决方案..

  • 我检查这个单词是否属实的方式只验证了前两个位置,我认为垃圾邮件并不是一个好主意。有没有办法轻松验证字符串的每个位置,以检查它是否属于,在这种情况下,"元音"。

元音= [" A" ," E" ,"我" ," 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"

4 个答案:

答案 0 :(得分:3)

如果你想通过检查它是否包含元音来验证所讨论的单词是否为单词,请使用此for循环:

django-admin migrate

这会检查你单词中的每个字母(无论长度如何),看它是否在你的列表元音中。另请注意,它会检查letter.upper(),它会将字母转换为大写版本,以便将其与大写元音列表进行精确比较。如果它在没有返回True的情况下到达单词的结尾,则表示它没有遇到任何元音,然后将返回false。

答案 1 :(得分:1)

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

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

它的作用是先使用word方法将.lower()中的所有字母小写,然后在新的小写单词中设置所有字符,并检查这些字符是否是使用.issubset()方法设置的元音。

您甚至可能甚至不需要创建此功能并明确返回TrueFalse。您只需使用set(word.lower()).issubset(vowels),它本身就是一个布尔表达式,将返回TrueFalse

答案 2 :(得分:1)

只需将@ Chris_Rands的优秀评论放入答案中:最简单的方法是将元音列表转换为set并使用{{word.lower()将字母与any()进行比较1}}:

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

如果你想确保单词不是完全由元音组成,你可以使用这个解决方案:

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

这将排除" a"和"我"这实际上是文字。作为最后一个示例,如果您只想检查至少两个字符的单词的条件,请使用:

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())

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

答案 3 :(得分:0)

试试这个

vowel=['A','E','I','O','U']
def e_silaba(word):
    word=word.upper()
    for i in vowel:
        try:
            word.index(i)
            return True
        except ValueError:
            continue
    return False

输出

>>> e_silaba('sandeep')
True
>>> e_silaba('dp')
False
>>> e_silaba('lda')
True
>>> e_silaba('bcf')
False
>>>