Сделать первую букву каждого слова большой (заглавной)
@Grundy если напишете там универсальный ответ, который позволит делать верхний регистр не только после точки, но и после пробела, после переноса строки, табуляции, других пробельных символов, многоточия и любых других символов на усмотрение пользователя — я соглашусь с дубликатом.
31 авг 2017 в 11:31
@andreymal, если цель добавить «каноничные» ответы на типовые вопросы по python, то думаю имеет смысл использовать метку python-faq.
31 авг 2017 в 12:00
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Используйте метод title :
s = 'qwertyu iopasd fghjklz xcvbnm' print(s.title())
Qwertyu Iopasd Fghjklz Xcvbnm
Отслеживать
ответ дан 31 авг 2017 в 11:12
12.9k 10 10 золотых знаков 40 40 серебряных знаков 76 76 бронзовых знаков
Почему ответ минуснули?
31 авг 2017 в 11:41
@Alban наверное, потому что элементарные само воросы/ответы — это не лучший способ наполнения базы знаний ruSO.
31 авг 2017 в 12:47
@alexolut чем это принципиально отличается от этого? Автор вопроса/ответа с каких-то пор стал иметь решающее значение?
31 авг 2017 в 12:49
Я не минусовал, если хотите знать, но и не поощряю подобных ситуаций. Если вопрос задал новичок, то вполне неплохо дать ему ответ, который его устроит, а не слать его в гугл. Но если Вы даёте самоответ — хорошо бы при этом иметь не чрезмерно тривиальную ситуацию, которая решается одной единственной функцией. А показать, что была произведена какая-то более сложная работа. И тогда она с большей вероятность будет вознаграждена голосами.
31 авг 2017 в 13:12
@alexolut: голоса на ответе должны отражать только насколько хорошо ответ решает поставленную в вопросе задачу в целом и относительно других ответов в частности. Не имеет значения, кто автор вопроса/ответа. Не имеет значения насколько простая тема по вашему. Если вы считаете, что подобный вопрос неуместен на Stack Overflow голосуйте за закрытие вопроса, минусы на ответы неправильно в таком случае ставить. (я не вижу кстати минуса на ответе). Кстати, не-ascii случай может быть нетривиальным (в зависимости от версии Unicode, используемой вашей версией Питона)
Регулярки — сделать букву заглавной
Поочереди сделать каждую букву строки заглавной
Допустим есть строка str="hello" Нужно поочереди сделать каждую букву заглавной и сделать список.
Сделать первую букву каждого слова большой (заглавной)
Есть такой код Но он не делает первые буквы заглавными
Сделать заглавной первую букву первого слова, во втором сделать заглавной вторую
Помогите с программой на СИ++ Дан текст, состоящий не менее чем из пяти слов. Написать.
Сделать первую букву заглавной
Возникла такая проблема. у меня есть список List<string> содержащий какие-то слова, и мне нужно.
Сделать первую букву строки заглавной
Всем привет! Как в предложении все слова подогнать под один формат? Т.е. если я ввожу "ИВАНОВ.
Am I evil? Yes, I am!
18966 / 9661 / 2710
Регистрация: 21.10.2017
Сообщений: 21,466
Сообщение было отмечено VistaSV30 как решение
Решение
result = re.sub(r'(?m)(?\.)(\s*[а-я])', lambda x: x[0].upper(), test_str)
Каждое слово — с большой буквы
Ваша задача — воспроизвести функционал метода title() , создав функцию emphasise() . Метод title() делает заглавной первую букву каждого слова, все остальные буквы переводятся в нижний регистр.
Примечания
- С цифрами и прочими символами ничего делать не надо, работаем только с буквами.
- Пожалуйста, не используйте сам метод title() !
Примеры
emphasise("hello world") ➞ "Hello World" emphasise("GOOD MORNING") ➞ "Good Morning" emphasise("99 red balloons!") ➞ "99 Red Balloons!"
Варианты решений
def emphasise(txt): return ' '.join(w[0].upper()+w[1:].lower() for w in txt.split())
def emphasise(txt): return ' '.join(w.capitalize() for w in txt.split())
import re def emphasise(txt): return re.sub(r'\b(\w)', lambda x: x.group(1).upper(), txt.lower())
Преобразование первой буквы каждого слова в строке в заглавную
В Python часто возникает задача преобразования первой буквы каждого слова в строке в заглавную. Например, есть строка ‘hello world’, и необходимо преобразовать ее в ‘Hello World’. Это можно сделать несколькими способами.
Использование встроенного метода title()
Самый простой способ заключается в использовании встроенного метода title() , который делает первую букву каждого слова в строке заглавной.
s = 'hello world' s = s.title() print(s) # Вывод: 'Hello World'
Использование метода capitalize() с разделением строки
Если нужно больше контроля над процессом, можно использовать комбинацию методов split() , capitalize() и join() .
Метод split() разделяет строку на список слов, capitalize() делает первую букву слова заглавной, а join() объединяет слова обратно в строку.
s = 'hello world' s = ' '.join(word.capitalize() for word in s.split()) print(s) # Вывод: 'Hello World'
Важно отметить, что метод title() делает все остальные буквы в слове строчными, в то время как capitalize() не изменяет остальные буквы в слове.
Таким образом, выбор метода зависит от конкретной задачи.