2017-04-23 3 views
0
s = "azcbobobegghakl" 
count = 0 
for char in s: 
    if char == 'a' or char== 'e' or char== 'i' or char== 'o' or char== 'u': 
     count += 1 
print count 


s = "azcbobobegghakl" 
count = 0 
for char in s: 
    if char == 'a' or 'e' or 'i' or 'o' or 'u': 
     count += 1 
print count 
+2

2番目のものは常に 'True'と評価されます。 – UnholySheep

+2

'aeiou''yのcharがもっとpythonic ...(ここで動作するvariantの場合)。 –

答えて

0

非空の文字列を出力するには、or Trueを行うようゆえor 'a'が同じになり、Trueと評価されます:

>>> bool('a') 
True 

>>> bool('') 
False 

あなたは母音をカウントしたい場合は、あなたは正規表現を使用できます。

import re 

s = "azcbobobegghakl" 
l = re.findall('[aeiou]', s) 
print(len(l)) 

# Returns: 5 
0

char == 'a' or 'e' or 'i' or 'o' or 'u'(((((char == 'a') or 'e') or 'i') or 'o') or 'u')として評価します。空の文字列以外の文字列はTrueと評価されるため、式はchar == 'a' or Trueと同じです(常にTrue)。

関連する問題