Top.Mail.Ru
Ответы

Помогите с задачей по программированию

сделала программу, но выдает ошибку 'return' otside fuction, не понимаю почему, помогите пожалуйста исправить
задача:
Младшая сестра Фёдора - Соня пишет сочинение по литературе и отправляет файлы учительнице.
Фёдор знает, что Соня никогда не ставит заглавные буквы, так как для набора текста использует компьютер. Пока никто не видит, Фёдор решил внести исправления в сочинение сестры и написал функцию capitalize(s), которая принимает на вход исходную строку s и возвращает строку с восстановленными заглавными буквами.
Функция работает по следующему алгоритму:
* сделать заглавной первую букву в строке, не считая пробелы;
* сделать заглавной первую букву после точки, восклицательного или вопросительного знака, не считая пробелы.

примечание: Функция должна обязательно называться capitalize.
Ваше решение должно содержать только функции.
В решении не должно быть вызовов требуемых функций.

пример: ввод: на этом заканчиваю свое сочинение. поставьте пятерку, Мария Ивановна! я очень старалась!
вывод: На этом заканчиваю свое сочинение. Поставьте пятерку, Мария Ивановна! Я очень старалась!

def capitalize(s):
result = s # в копии исходной строки будем собирать итоговую строку
pos = 0
while pos < len(s) and result[pos] == ' ':
pos = pos + 1

# заменяем регистр символа на заглавный, не затрагивая остальные символы в строке
if pos < len(s):
result = result[0 : pos] + result[pos].upper() + result[pos + 1 : len(result)]


# делаем заглавной первую букву, которая следует за точкой, восклицательным или вопросительным знаками
pos = 0
while pos < len(s):
if result[pos] == "." or result[pos] == "!" or result[pos] == "?":

# переходим за знак '.', '!' или '?'
pos = pos + 1

# пропускаем пробелы
while pos < len(s) and result[pos] == " ":
pos = pos + 1

# если не достигли конца строки, меняем текущий символ на заглавную букву
if pos < len(s):
result = result[0 : pos] + result[pos].upper() + result[pos + 1 : len(result)]
# идем к следующему символу
pos = pos + 1
return

По дате
По рейтингу