我对 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/ 来解决这个问题,但我并不聪明。我已经研究过“懒惰评估”,但我不明白这如何适用于上述代码。
答案 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