在for循环中嵌入了or语句的if语句时遇到问题


random_characters = "adak"
for letter in random_characters:
print(letter)
if letter == "a":
print("Vowel")

作为输出发射:

a
Vowel
d
a
Vowel
k

如果我只在If语句中包含一个字母,那么代码运行良好。然而,如果我通过或语句再添加一个。。。

a
Vowel
d
Vowel
a
Vowel
k
Vowel

"元音"在每次迭代后打印。

我将从字里行间阅读,并猜测您犯了一个非常常见的错误:

if letter == "a" or "e":

因为这会产生你所看到的结果。原因是,这被解释为

if (letter == "a")  or  "e":

并且由于";e";如果始终为True,则始终取if。如果要比较多个字母,请使用in:

if letter in ("a","e","i","o","u"):

尽管在这种情况下,您也可以写:

if letter in "aeiuo":

最新更新