У меня следующая домашняя задача:
Напишите функцию countVowels (), которая принимает строку в качестве параметра и печатает количество вхождений гласных в строке.
>>> countVowels('It was the best of times; it was the worst of times.')
a, e, i, o, and u appear, respectively, 2, 5, 4, 3, 0 times.
>>> countVowels('All for one, and one for all!')
a, e, i, o, and u appear, respectively, 3, 2, 0, 4, 0 times.
>>>
Я создал функцию, которая намеревается взять строку наподобие str1 = "bananas are tasty"
, разделить строку и присвоить ее переменной, чтобы она стала str1_array = ['bananas', 'are', 'tasty']
, затем использовать циклы for для итерации по str1_array
, подсчитайте гласные a, e, i, o и u соответственно и включите количество каждого гласного в заключительный оператор print()
.
Я столкнулся спроблема в том, что функция будет считать только «a» в элементе first в str1_array
и будет повторять эту сумму в моем последнем операторе печати.
то есть для str1_array = ['bananas', 'are', 'tasty']
я получаю оператор печати A, E, I, O, and U appear, respectively, 3 3 3 3 and 3 times.
def countVowels(str1):
str1_array = str1.split(" ")
vA = ["A", "a"]
vE = ["E", "e"]
vI = ["I", "i"]
vO = ["O", "o"]
vU = ["U", "u"]
vA_count = 0
for vA in str1_array:
vA_count = vA_count + 1
vE_count = 0
for vE in str1_array:
vE_count = vE_count + 1
vI_count = 0
for vI in str1_array:
vI_count = vI_count + 1
vO_count = 0
for vO in str1_array:
vO_count = vO_count + 1
vU_count = 0
for vU in str1_array:
vU_count = vU_count + 1
print("A, E, I, O, and U appear, respectively, ", vA_count, vE_count, vI_count, vO_count, "and", vU_count, "times.")