以下两个程序中第4行的代码有什么区别?第一个打印5,但第二个打印15

时间:2017-04-23 11:08:25

标签: python loops if-statement

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 个答案:

答案 0 :(得分:0)

非空字符串将评估为or 'a',因此or True将与执行>>> bool('a') True >>> bool('') False 相同:

import re

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

# Returns: 5

如果你想计算元音,那么你可以使用正则表达式:

student_id

答案 1 :(得分: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