我正在尝试检查元音作为单词的第一个字符。对于我的代码,我目前有这个:
if first == 'a' or first == 'e' or first == 'i' or first == 'o' or first == 'u':
我想知道有更好的方法来做这项检查,还是这是最好和最有效的方式?
答案 0 :(得分:15)
您可以使用in
:
if first.lower() in 'aeiou':
或更好像
if first.lower() in ('a', 'e', 'i', 'o', 'u'):
答案 1 :(得分:7)
更好地创建一组元音,就像这样
>>> vowels = set('aeiouAEIOU')
>>> vowels
set(['a', 'A', 'e', 'i', 'o', 'I', 'u', 'O', 'E', 'U'])
然后检查first
是否是其中之一
>>> if first in vowels:
...
注意:
的问题if first in 'aeiouAEIOU':
方法是,如果输入错误,例如,如果first
为'ae'
,则测试将失败。
>>> first = 'ae'
>>> first in 'aeiouAEIOU'
True
但ae
显然不是元音。
<强>改进:强>
如果它只是一次性工作,您不必事先创建一个集合,那么您可以使用if first in 'aeiouAEIOU':
本身,但首先检查first
的长度,像这样
>>> first = 'ae'
>>> len(first) == 1 and first in 'aeiouAEIOU'
False
答案 2 :(得分:1)
这是正则表达式方法:
from re import match
if match(r'^[aieou]', first):
...
如果“first”的第一个字符是元音,则此正则表达式将匹配。
答案 3 :(得分:1)
如果你的函数返回布尔值,那么最简单最简单的方法就是
`bool(first.lower() in 'aeiou')`
或者
return first.lower() in 'aeiou'