Python FOR 循环 - 忽略测试

时间:2021-06-06 18:39:18

标签: python

我对 Python 非常陌生,我很难理解为什么以下代码无法按预期工作。这个想法是让代码计算字符串中的元音,我可以让它以不同的方式工作,但我想了解为什么以下不起作用:

s = "tester"
vowelCount = 0

for letters in s:
     if letters == "a" or "e" or "i" or "o" or"u":
         vowelCount += 1

print("Number of vowels: " + str(vowelCount))

输出: 元音数:6

我已经通过 http://pythontutor.com/ 来解决这个问题,但我并不聪明。我已经研究过“懒惰评估”,但我不明白这如何适用于上述代码。

1 个答案:

答案 0 :(得分:0)

or 运算符分别评估每个语句。所有单个字母“e”“i”等都评估为真。

做你想做的事:

for letters in s:
     if letters == "a" or letters == "e" or letters == "i":
         vowelCount += 1

也许更好的方法是:

for letters in s:
    if letters in ['a', 'e', 'i', 'o', 'u']:
         vowelCount += 1
相关问题