我需要你帮助我制作一个小程序。
程序检查单词是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"
答案 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()
方法设置的元音。
您甚至可能甚至不需要创建此功能并明确返回True
或False
。您只需使用set(word.lower()).issubset(vowels)
,它本身就是一个布尔表达式,将返回True
或False
。
答案 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
>>>