В python вы можете иметь функции, которые непрерывно возвращают значения - они называются генераторами. Вы просто используете yield
вместо возврата. Затем вы можете использовать их как итераторы или вызвать list
для получения значений:
word=input('please enter a word')
def cap(word):
for letter in word:
if letter in 'aeiou':
yield letter.upper()
else:
yield letter
result=cap(word)
print(''.join(list(result)))
Однако, если ваша цель состоит в том, чтобы перевести набор символов в другой набор символов, для этого есть метод строки python: translate
() .
word=input('please enter a word')
upper_vowels = word.translate(str.maketrans('aeiou', 'AEIOU'))
print(upper_vowels)
Это должно быть более эффективным, чем зацикливание и объединение, а также более легким для чтения. Кроме того, вы можете сохранить таблицу перевода отдельно, если хотите применить ее ко многим строкам.