kut*_*edk 7 python string python-2.7
我正在尝试检查元音作为单词的第一个字符.对于我的代码我目前有这个:
if first == 'a' or first == 'e' or first == 'i' or first == 'o' or first == 'u':
Run Code Online (Sandbox Code Playgroud)
我想知道有更好的方法来做这个检查还是这是最好和最有效的方式?
Rah*_*thi 15
您可以尝试这样使用in:
if first.lower() in 'aeiou':
Run Code Online (Sandbox Code Playgroud)
或者更好
if first.lower() in ('a', 'e', 'i', 'o', 'u'):
Run Code Online (Sandbox Code Playgroud)
更好地创建一组元音,就像这样
>>> vowels = set('aeiouAEIOU')
>>> vowels
set(['a', 'A', 'e', 'i', 'o', 'I', 'u', 'O', 'E', 'U'])
Run Code Online (Sandbox Code Playgroud)
然后检查first他们中的一个是否是这样的
>>> if first in vowels:
...
Run Code Online (Sandbox Code Playgroud)
注意:问题所在
if first in 'aeiouAEIOU':
Run Code Online (Sandbox Code Playgroud)
方法是,如果输入错误,例如,如果first是'ae',那么测试将失败.
>>> first = 'ae'
>>> first in 'aeiouAEIOU'
True
Run Code Online (Sandbox Code Playgroud)
但ae显然不是元音.
改进:
如果它只是一次性工作,你不关心事先创建一个集合,那么你可以使用if first in 'aeiouAEIOU':自己,但检查first首先的长度,像这样
>>> first = 'ae'
>>> len(first) == 1 and first in 'aeiouAEIOU'
False
Run Code Online (Sandbox Code Playgroud)