2016-05-09 8 views
0

はPython 3でIF文を簡素化するためにどのようにIF文を持っている:次のように

... 
if word.endswith('a') or word.endswith('e') or word.endswith('i') or word.endswith('o') or word.endswith('u'): 
... 

をここで私はすべての状況をカバーするために4論理和を使用する必要がありました。とにかく私はこれを単純化することができますか?私はPython 3.4を使用しています。

+1

これを確認してください: http://stackoverflow.com/questions/22812785/use-endswith-with-multiple-extensions – galah92

+0

こちらもここで説明しています:http://stackoverflow.com/a/18351977/390450 –

答えて

2

は単語が[-1]最後の文字

3

使用any単に

>>> word = 'fa' 
>>> any(word.endswith(i) for i in ['a', 'e', 'i', 'o', 'u']) 
True 
>>> word = 'fe' 
>>> any(word.endswith(i) for i in ['a', 'e', 'i', 'o', 'u']) 
True 
>>> 
+0

誰かの答えが好きです。listとstringの両方がpythonのiterablesなので、 '['a'、 'e']'リストの代わりに '' aeiou "'を使うこともできます –

1

>>> "apple"[-1] in 'aeiou' 
True 
>>> "boy"[-1] in 'aeiou' 
False 
0

word.endswith(c)ある

if word[-1] in ['a','e','i','o','u']: 

を試してみてはただ目です電子同じようword[-1] == cとして:

VOWELS = 'aeiou' 

if word[-1] in VOWELS: 
    print('{} ends with a vowel'.format(word) 

を行います。リスト、タプル、セット、その他のデータ構造を構築する必要はありません。文字列のメンバシップをテストするだけです(この場合はVOWELS)。