Как вывести конечный результат цикла в python?
Как вывести конечный результат цикла в python? Есть функция которая считает гласные в слове
def get_count(sentence):
i = 0
for index in range(len(sentence)):
if sentence[index] == "a" or sentence[index] == "e" or sentence[index] == "e" or sentence[index] == "i" or sentence[index] == "o" or sentence[index] == "u":
i = i + 1
print(i)
else:
print("Not a vowel")
get_count("aeib")
И при замене print(i) на return i выводится просто 1
Ответы (3 шт):
Автор решения: MBo
→ Ссылка
def get_count(sentence):
i = 0
for index in range(len(sentence)):
if sentence[index] in {"a", "e", "i", "u", "o"}:
i += 1
return i
print(get_count("aeib"))
А поскольку индексы вам не нужны, n1tr0xs подсказывает использовать более простой цикл:
def get_count(sentence):
i = 0
for letter in sentence:
if letter in {"a", "e", "i", "u", "o"}:
i += 1
return i
Автор решения: Evrik
→ Ссылка
Если нужно только количество гласных букв, то можно так
def get_count(sentence):
return len(list(filter(lambda char: char in "aeiuo", sentence)))
print(get_count("aeib"))
В Вашем случае выводится единица потому что return сразу завершает выполнение функции, т.е. в Вашем случае при нахождении первой гласной буквы. Чтобы Ваш код работал правильно, нужно return i поместить после цикла
Автор решения: CrazyElf
→ Ссылка
Ну и до кучи совсем уж "однострочник" в "функциональном стиле" )
def get_count(sentence):
return sum(map({"a", "e", "i", "u", "o"}.__contains__, sentence))
print(get_count("aeib"))