Python :or を使うと指定文字以外もカウントしてしまう原因を教えてください

母音を数をカウントする課題で、それぞれの文字が a,i,u,e,oかどうかを調べたいです。

母音の数を数えようとして、orを使うと、母音以外もカウントされます

与えられるテキストから母音を数えるために、テキストを一文字ずつに小分けして、for文を使って一つずつ母音かどうかを確かめようとしました。しかし、以下のコードにあるように char_list[i] == の部分で or を使って比較しようとすると、全ての文字がカウントされてしまいます。

Python

1def count_vowels(text: str) -> int:2 3 char_list = []4 n_vowels = 05 6 for char in text:7 char_list.append(char)8 9 for i in range(len(char_list)):10 if char_list[i] == "a" or "I" or "u" or "e" or "o" or "A" or "I" or "U" or "E" or "O":11 n_vowels += 112 13 return n_vowels  14 15print(count_vowels("Hello"))

結果

5(すべての文字がカウントされてしまいます)

試したこと

最終的には10行目を char_list[i] in ["a","A","i","I","u","U","e","E","o","O"]: とすることで解決しましたが、納得がいかないので教えてほしいです。

コメントを投稿

0 コメント