С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/212: Рейтинг темы: голосов - 212, средняя оценка - 4.70
4 / 4 / 0
Регистрация: 20.03.2021
Сообщений: 54

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

20.03.2021, 19:13. Показов 49098. Ответов 20

Студворк — интернет-сервис помощи студентам
Уважаемые корифеи Python-а!
Есть задача.

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

Решение оформите в виде функции 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

Код
Python
1
2
3
4
def capitalize(s):
  return ' '.join([s.capitalize() for s in s.split()])
s=input()
print(capitalize(s))
Код составленный на Python-е позволяет решить 2-а последние задачи, но он не действует для случая
-a-bb-ccc
На Ввод
-a-bb-ccc
Выход
-a-bb-ccc
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.03.2021, 19:13
Ответы с готовыми решениями:

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

Вывести через запятую все слова строки S, начинающиеся с прописной (большой) буквы
Дана строка S, слова в которой разделены пробелами. Написать программы, решающие следующие задачи:Вывести через запятую все слова строки S,...

Удалить из каждого слова все последующие вхождения первой буквы слова
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 5 латинских букв, между соседними словами-запятая, за...

20
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
20.03.2021, 19:23
Python
1
2
s = '-a-bb-ccc'
print(s.title())
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.03.2021, 19:24
Только что написал
1
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,295
20.03.2021, 19:29
Python
1
2
3
4
5
6
7
8
9
10
11
12
def capitalize(str_):
    res = []
    flag = True
    for s in str_.lower():
        if  s.isalpha():
            if flag:
                flag = False
                s = s.upper()
        else:
            flag = True
        res.append(s)       
    return ''.join(res)
1
4 / 4 / 0
Регистрация: 20.03.2021
Сообщений: 54
20.03.2021, 19:39  [ТС]
Semen-Semenich
ваш код выдает ошибку((((
Code
1
2
3
4
-a-bb-ccc
Traceback (most recent call last):
  Python Shell, prompt 2, line 1
builtins.NameError: name 'a' is not defined
Добавлено через 1 минуту
eaa, увы
Code
1
title
использовать нельзя
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,295
20.03.2021, 19:41
Лучший ответ Сообщение было отмечено eiktyrnir как решение

Решение

Цитата Сообщение от eiktyrnir Посмотреть сообщение
ваш код выдает ошибку((((
ошибку выдаете вы не читая учебники
Python
1
2
3
print(capitalize('-a-bb-ccc'))
print(capitalize('In a hole in the ground there lived a hobbit'))
print(capitalize('Everyone OF uS HAS all wE NEED'))
-A-Bb-Ccc
In A Hole In The Ground There Lived A Hobbit
Everyone Of Us Has All We Need
>>>
1
4 / 4 / 0
Регистрация: 20.03.2021
Сообщений: 54
20.03.2021, 19:52  [ТС]
Semen-Semenich, УВАЖАЕМЫЙ СПАСИБО!!!!! ЗАРАБОТАЛО!!!!!!!! ВСЕМ СПАСИБО!!!!
0
4 / 4 / 0
Регистрация: 20.03.2021
Сообщений: 54
20.03.2021, 20:05  [ТС]
Semen-Semenich, да я вижу про Спасибо, но у меня такая возможность выразить благодарность увы отсутствует...
Уважаемый всё-таки вы могли бы написать код по иному (через код return?!)? Я даже незнаю как, но программа проверки данного кода выдаёт ошибку, хотя у меня в компиляторе Python-а она выполняется как положено....Что не нравится сайту школы СИРИУСа я пока даже понять немогу...
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def 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)       
    return ''.join(res)
s=input()
print(capitalize(s))
Идеальный код что нужно, но при проверке его на сайте СИРИУСа - проверка считает его ошибочным...
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,295
21.03.2021, 12:15
Цитата Сообщение от eiktyrnir Посмотреть сообщение
его на сайте СИРИУСа - проверка считает его ошибочным
а может на сайт только функцию нужно подавать без строк ввода и вывода?
Цитата Сообщение от eiktyrnir Посмотреть сообщение
иному (через код return?!)
ну как бы
Python
1
return ''.join(res)
1
5 / 5 / 0
Регистрация: 21.03.2021
Сообщений: 8
21.03.2021, 15:05
Python
1
2
3
4
5
6
7
8
9
10
11
12
def Capitalize(S):
    c=''
    for i in range(0,len(S)):
        if S[i].isupper() and S[i-1].isalpha()==True and i!=0:
            c+=S[i].lower()
        elif S[i].islower() and S[i-1].isalpha()==False or i==0:
            c+=S[i].upper()
        else:
            c+=S[i]
    return c
S = input()
print(Capitalize(S))
3
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.03.2021, 15:41
Так ?
Python
1
2
3
4
5
6
7
8
9
10
11
def capitalizer():
    mlist = list(map(str, input().split()))
    for i in mlist:
        i = str(i)
        i = i.capitalize()
        print(i)
 
 
if __name__ == '__main__':
 
    capitalizer()
1
4 / 4 / 0
Регистрация: 20.03.2021
Сообщений: 54
21.03.2021, 16:10  [ТС]
Shreding, уважаемый...Ваш код
Python
1
2
3
4
5
6
7
8
9
10
11
12
def Capitalize(S):
    c=''
    for i in range(0,len(S)):
        if S[i].isupper() and S[i-1].isalpha()==True and i!=0:
            c+=S[i].lower()
        elif S[i].islower() and S[i-1].isalpha()==False or i==0:
            c+=S[i].upper()
        else:
            c+=S[i]
    return c
S = input()
print(Capitalize(S))
выдает на ввод
-a-bb-ccc
вывод
-A-
на ввод
In a hole in the ground there lived a hobbit.
вывод
In

Что-то в нём не то....((( немогу понять что...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
21.03.2021, 19:33
Dax, в чем сакральный смысл этого map?
Цитата Сообщение от Dax Посмотреть сообщение
list(map(str, input().split()))
1
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.03.2021, 19:41
iSmokeJC, на автомате,если честно,писал, сие не есть хорошо, так как в коде есть вторичное приобразование е строке, но, начальный смысл был таков: дать пользователю возможность вводить только строки, либо, автоматом преобразовывать введенное к типу str, чтоб можно было капитализировать обраюотанный результат в любом случае, как строку.)
1
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,295
22.03.2021, 18:21
Цитата Сообщение от Dax Посмотреть сообщение
смысл был таков: дать пользователю возможность вводить только строки, либо, автоматом преобразовывать введенное к типу str,
мы не ищем легких путей.
Python
1
2
3
4
5
6
7
8
9
>>> a = input()
1234
>>> type(a)
<class 'str'>
>>> a = input()
123asfddf!@$%^&*(
>>> type(a)
<class 'str'>
>>>
1
1 / 1 / 0
Регистрация: 30.03.2021
Сообщений: 1
30.03.2021, 20:54
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def сapitalize(S):
    s = []
    for i in range(len(S)):
        s.append(S[i])
        s.append('+')
    for i in range(len(S)):
        if s[i].isalpha():
    if not s[i - 1].isalpha():
        s[i] = s[i].upper()
    else:
        s[i] = s[i].lower()
 
 
S = s[0]
for i in range(1, len(s) - 1):
    S += s[i]
return S
S = input()
print(сapitalize(S))
Решение, прошло на Сириусе.
Сори за плохие отступы, это мой первый ответ на киберфоруме
1
1 / 1 / 0
Регистрация: 09.01.2020
Сообщений: 1
04.08.2021, 23:46
Код прошел. Кому нужно - берите
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def Capitalize(S):
    d=''
    for i in range(len(f)):
        c=f[i]
        if c.isalpha() and i == 0:
            d += c.upper()
        elif c.isalpha() == True and f[i-1].isalpha() == False :
            d += c.upper()
        elif c.isupper() == True and f[i-1].isalpha() == True :
            d += c.lower()
        else:
            d += f[i]
    return(d)
S = input()
print (Capitalize(S))
1
0 / 0 / 0
Регистрация: 27.10.2022
Сообщений: 6
28.01.2023, 16:56
Цитата Сообщение от Pisosyam Посмотреть сообщение
Кому нужно - берите
хаха, довольно интересная тренировка, нужно найти ошибку и исправить)))
0
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
28.01.2023, 19:49
По моему нужно так:

Python
1
2
3
4
def capitalize(s):
  return s
s=input()
print(capitalize(s).title())
У меня работает
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.01.2023, 19:51
Вот это рофел

Добавлено через 1 минуту
TimutGin, твой код равнозначен -
print(input().title())
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2023, 19:51
Помогаю со студенческими работами здесь

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

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

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

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru