母音を数をカウントする課題で、それぞれの文字が 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 コメント