0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 3
1

Задача вывести все слова в строке с заглавной буквы

17.07.2021, 20:03. Показов 3426. Ответов 7
Метки нет (Все метки)

Добрый день!
Помогите пожалуйста решить задачу по теме "Строки". Вроде всё просто, но результат не тот. (((
Условие: Напишите код, который обрабатывает строковые данные и возвращает их с первыми заглавными буквами в каждом слове.
Задания для самостоятельной проверки:
Подставьте "Входные данные" в свою программу и сравните результат с выходными данными.
1) Входные данные: 'ivan ivanov'.
Выходные данные: 'Ivan Ivanov'
2) Входные данные: 'can you solve it?'.
Выходные данные: 'Can You Solve It?'
3) Входные данные: 'abraсadabra'.
Выходные данные: 'Abraсadabra'
4) Входные данные: 'a1 2b 3 abc d3e r2D2'.
Выходные данные: 'A1 2b 3 Abc D3e R2D2'
Проблема, естественно, возникла с пунктом 4. )))
Написал такой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my_string = 'a1 2b  3  abc d3e r2D2'
x = my_string.split(' ')
numbers = []
line = ' '
for i in x:
    if i.isalpha():
        numbers.append(i[:1].upper()+i[1:])
        line = ' '.join(numbers)
        print (line)
    elif i.isnumeric():
        numbers.append(i[:1].upper()+i[1:])
        line = ' '.join(numbers)
        print (line)
    else:
        numbers.append(i[:1].upper()+i[1:])
        line = ' '.join(numbers)
        print(line)
Он всё делает, что нужно. Но выводит каждую строку в цикле:
A1
A1 2b
A1 2b
A1 2b 3
A1 2b 3
A1 2b 3 Abc
A1 2b 3 Abc D3e
A1 2b 3 Abc D3e R2D2

А нужно, соответственно, только последнюю строку - A1 2b 3 Abc D3e R2D2.
Вот как это сделать? )))
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2021, 20:03
Ответы с готовыми решениями:

Вывести все слова начинающиеся с заглавной буквы
С клавиатуры вводится строка S. Она содержит различные символы и пробелы. Части строки, разделенные...

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

Вывести на экран все слова, которые начинаются с заглавной буквы (Visual Prolog)
Вывести на экран все слова, которые начинаются с заглавной буквы пж срочноо

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

7
Йуный падаван
Эксперт PythonЭксперт Java
8838 / 5231 / 1800
Регистрация: 21.10.2017
Сообщений: 14,073
17.07.2021, 20:10 2
Python
1
2
my_string = 'a1 2b 3 abc d3e r2D2'
print(my_string.title())
0
2913 / 2158 / 838
Регистрация: 21.03.2016
Сообщений: 5,528
17.07.2021, 20:13 3
Python
1
print(' '.join([word[0].upper() + word[1:] for word in input().split()]))
Добавлено через 1 минуту
iSmokeJC, S.title() Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний. тут нужно остальные без изменений оставить.
Входные данные: 'a1 2b 3 abc d3e r2D2'.
Выходные данные: 'A1 2b 3 Abc D3e R2D2'
1
Йуный падаван
Эксперт PythonЭксперт Java
8838 / 5231 / 1800
Регистрация: 21.10.2017
Сообщений: 14,073
17.07.2021, 20:14 4
Semen-Semenich, ок
Python
1
2
3
4
import re
 
my_string = 'a1 2b 3 abc d3e r2D2'
print(re.sub(r'\b\w', lambda x: x.group().upper(), my_string))
1
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 3
17.07.2021, 23:05  [ТС] 5
Спасибо!
Так работает!
Оказывается, задача решается в одну строчку! ))) А я, похоже, слишком усложнил решение. Но тем не менее, из моего решения можно что-то сделать?

Добавлено через 2 минуты
0
5197 / 2703 / 1261
Регистрация: 27.03.2020
Сообщений: 5,001
17.07.2021, 23:27 6
Couldyouhelpme,
Python
1
2
3
4
5
6
7
8
my_string = 'a1 2b  3  abc d3e r2D2'
x = my_string.split(' ')
num = []
line = ' '
for i in x:
    num.append(i[:1].upper()+i[1:])
line = ' '.join(num)
print(line)
1
139 / 101 / 42
Регистрация: 03.12.2016
Сообщений: 201
18.07.2021, 00:00 7
Couldyouhelpme,
Python
1
2
3
my_string = 'a1 2b  3  abc d3e r2D2'
x = my_string.split(' ')
print(' '.join(word[:1].upper() + word[1:] for word in x))
0
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 3
18.07.2021, 02:28  [ТС] 8
Спасибо!
Работает!
Я бы долго ещё это решал )))

Добавлено через 3 минуты
Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2021, 02:28

Вывести в консоль все слова из текста (без повторений) в алфавитном порядке и с заглавной буквы
Помогите написать данную программу другим способом, а не в одну строчку как у меня object prg1...

Вывести в консоль все слова из текста (без повторений) в алфавитном порядке и с заглавной буквы
object prg1 extends App{ val text = "я узнал что у меня есть огромная семья и тропинка и лесок я...

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

Каждое слово в строке вывести с заглавной буквы
Написать метод, который принимает строку(предложение), возвращает строку с заглавными первыми...

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.