Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Слова с прописной буквы код для Сириус курсы пайтон

никита Ученик (101), открыт 1 день назад
Дана строка. Измените регистр символов в этой строке так, чтобы первая буква каждого слова была заглавной, а остальные буквы — строчными.

Решение оформите в виде функции Capitalize(S), возвращающей новую строку.
Примеры
Ввод
Вывод
-a-bb-ccc
-A-Bb-Ccc
In a hole in the ground there lived a hobbit.
In A Hole In The Ground There Lived A Hobbit.
Everyone OF uS HAS all wE NEED
Everyone Of Us Has All We Need

def Capitalize(S):
S = input()
print (Capitalize(S))


вот мой код но выдаёт ошибку
res = []
flag = True
for s in s.lower():
if s.isalpha():
if flag:
flag = False
s = s.upper()
else:
flag = True
res.append(s)
1 ответ
Lex Smilink Ученик (175) 1 день назад
Ваш код близок к правильному решению, но есть небольшая ошибка. Вместо того, чтобы проверять каждый символ на наличие букв, вы можете проверять на наличие пробелов или других разделителей, чтобы определить начало нового слова.

Вот исправленный код:

```python
def Capitalize(S):
res = []
flag = True
for s in S.lower():
if s.isalpha():
if flag:
res.append(s.upper())
flag = False
else:
res.append(s)
else:
res.append(s)
flag = True
return ''.join(res)

S = input()
print(Capitalize(S))
```

Этот код работает следующим образом:

* Он перебирает каждый символ в строке `S`, предварительно преобразовав его к нижнему регистру.
* Если символ является буквой (`s.isalpha()`), он проверяет флаг `flag`. Если флаг равен `True`, это означает, что мы стоим перед первым символом нового слова, поэтому он преобразует этот символ к верхнему регистру и добавляет его к результату. Затем он сбрасывает флаг в `False`.
* Если символ не является буквой (например, пробел или знак препинания), он добавляет этот символ к результату и сбрасывает флаг в `True`, чтобы быть готовым к следующему слову.
* Наконец, он возвращает результат как строку, используя `''.join(res)`.

Этот код должен правильно изменять регистр символов в строке, делая первую букву каждого слова заглавной, а остальные буквы строчными.
Похожие вопросы