Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 01.09.2020
Сообщений: 2

Строковый тип данных

08.09.2020, 01:46. Показов 1916. Ответов 15

Студворк — интернет-сервис помощи студентам
Ребята очень прошу помочь с такой задачей, бьюсь не один час, но не умею работать со строками, помогите пожалуйста!
Написать программу на языке Python 3, реализующую решение задачи с использованием строкового типа данных. Программу просчитать для различных исходных данных. Создать новый текст, содержащий все слова исходного текста, которые оканчиваются на ту же букву, что и слово максимальной длины. Из исходного текста эти слова удалить.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.09.2020, 01:46
Ответы с готовыми решениями:

Проверить пременную на строковый тип
Написал программу для определения типа переменной: x=input() if (type(x)==str): print('Да, это строка') else: ...

Строковый тип данных. Комбинированный тип данных
Здравствуйте! Помогите с программой на определение даты след.( и предыдущего дня) и день недели выпадающий на дату, которая вводится с...

Строковый тип данных
Всем доброго времени суток. Помогите решить вот такую вот задачку: "Даны фамилии и имена нескольких студентов. Определите, кто из...

15
260 / 165 / 54
Регистрация: 03.05.2019
Сообщений: 339
08.09.2020, 02:16
Python
1
2
3
text = 'hello hi toi, po'.split() # делим текст на слова
char = max(text, key = len)[0].casefold() # получаем первую букву в нижнем регистре
text = ' '.join([word for word in text if word[0].casefold() == char])
Разве что будут проблемы, если знак поставить в начале слова, это будет считатся его первой буквой, но если есть необходимость, то можно и это исправить.
Читайте про строковый тип и его функции и будет вам счастье.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
08.09.2020, 05:19
amator_C, Немножко поправил:
Python
1
2
3
4
5
text = 'hello hi toi po'.split() # делим текст на слова
char = max(text, key = len)[-1].casefold() # получаем первую букву в нижнем регистре
text_new = [word for word in text if word[-1].casefold() == char]
print(' '.join([word for word in text if word not in text_new]))
print(' '.join(text_new))
Последнюю букву(не первую)
И из исходного текста удалить найденные слова

Добавлено через 8 минут
Даже похоже так
Python
1
2
3
4
5
text = 'hello hi toi po'.split() # делим текст на слова
char = max(text, key = len)[-1] # получаем последнюю букву
text_new = [word for word in text if word[-1] == char]
print(' '.join([word for word in text if word not in text_new]))
print(' '.join(text_new))
В условиях сказано про различные условия, а про грамматику и регистр - ничего
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
08.09.2020, 09:24
amator_C, таки надо порезать и знаки препинания, ибо будут учитываться при определении длины слова...

Добавлено через 1 минуту
А, не заметил, Gdez поправил.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
08.09.2020, 09:26
Нет
Про знаки я не подумал)
Обычно в таких заданиях нужно порядок и знаки препинания оставлять неизменным
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
08.09.2020, 09:34
Gdez, ну вот по феншую надо бы учитывать знаки при определении длины слова. Не удалять, а только учитывать.
Хотя ТСу такой загон походу не нужен...
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
08.09.2020, 10:45
iSmokeJC, действительно слишком много получается):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import re
text = 'red hello. hi toi po.'.split() # делим текст на слова
len_i_max = 0
text_old = ''
text_new = []
for i in text :
    len_i = len(i)
    while not i[len_i-1].isalpha() :
        len_i -= 1
    if len_i_max < len_i:
        len_i_max = len_i
        char = i[len_i-1] # получаем последнюю букву
for i in text :
    len_i = len(i)
    while not i[len_i-1].isalpha() :
        len_i -= 1
    if i[len_i-1] == char :
        text_new.append(i[:len_i])
        i = i[len_i:]
    text_old += i + ' '
print(' '.join(text))
print(re.sub(r' ([.,:;!?]) *', r'\1 ', text_old))
print(' '.join(text_new))
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
08.09.2020, 10:58
Gdez, это все куда как проще написать можно. Если никто не сподобится, вечерком что-нибудь изображу. )))
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
08.09.2020, 11:06
Хорошо бы.
А то искать в инете тяжело.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
08.09.2020, 11:18
На коленке, возможно требуются правки:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
text = """Даже шею, даже уши ты испачкал в черной туши.
Становись скорей под душ. Смой с ушей под душем тушь.
Смой и с шеи тушь под душем. После душа Вытрись суше.
Шею суше, суше уши - и не пачкай больше уши."""
 
 
big_word, length, words = "", 0, {}
 
for word in text.split():
    if (word := ''.join(s for s in word if str.isalpha(s))):
        if (cur_len := len(word)) > length:
            big_word, length = word, cur_len
        if (last_symbol := word[-1]) not in words:
            words[last_symbol] = []
        words[last_symbol].append(word)
 
 
print(*words[big_word[-1]])
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
08.09.2020, 11:19
Gdez, ну попробуй например в листкопсе выделения максимального по длине слова к каждому элементу применить rstrip, или регуляркой собрать слово без знаков. Что-то типа того...
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
08.09.2020, 11:59
Спасибо!!!
Python
1
2
3
4
5
6
7
8
9
10
import re
text_in = 'Даже шею, даже уши ты испачкал в черной туши. Становись скорей под душ. Смой с ушей под душем тушь. Смой и с шеи тушь под душем. После душа Вытрись суше. Шею суше, суше уши - и не пачкай больше уши.' 
text_in = re.sub(r'([.,:;!?])', r' \1 ', text_in)
text = text_in.split()
char = max(text, key = len)[-1] # получаем последнюю букву
text_new = [word for word in text if word[-1] == char]
text_old = ' '.join([word for word in text if word not in text_new])
print(text_in)
print(re.sub(r' ([.,:;!?]) *', r'\1 ', text_old))
print(' '.join(text_new))
В начале добавляем пробелы между словами и словами и символами. (Регулярка)
Список с раделителем "пробел"
Обработка
Удаление пробелов между словами и символами пунктуации. (Регулярка)
0
260 / 165 / 54
Регистрация: 03.05.2019
Сообщений: 339
08.09.2020, 12:11
Цитата Сообщение от Gdez Посмотреть сообщение
# получаем последнюю букву
Да, про последнюю я не заметил.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
08.09.2020, 12:24

Python
1
2
3
text_in = 'Даже шею, даже уши ты испачкал в черной туши. Становись скорей под душ. Смой с ушей под душем тушь. Смой и с шеи тушь под душем. После душа Вытрись суше. Шею суше, суше уши - и не пачкай больше уши.' 
 
print(*[j for j in text_in.split() if j.rstrip("[.,:;!?]").endswith(max([i.rstrip("[.,:;!?]") for i in text_in.split()], key=len)[-1:])])


Добавлено через 5 минут
В общем случае, это лютое извращение решается одной регуляркой.
Но я, до такой степени, не в теме. Мож Рыжий Лис подтянется, наваяет.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
08.09.2020, 12:32
Хорошо)
Посмотрю... rstrip
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.09.2020, 15:02

Не по теме:

Цитата Сообщение от iSmokeJC Посмотреть сообщение
Мож Рыжий Лис подтянется, наваяет.
Меня по нику звать бесполезно - отключено в настройках



Не совсем понял задание, но вот
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import re
 
text = """Даже шею, даже уши ты испачкал в черной туши.
Становись скорей под душ. Смой с ушей под душем тушь.
Смой и с шеи тушь под душем. После душа Вытрись суше.
Шею суше, суше уши - и не пачкай больше уши."""
words = re.findall(r'\w+', text.lower())
words.sort(key=len)
#print(words)
letter = words[-1][-1]
result = [word for word in words if word[-1] == letter]
text2 = ' '.join(result)
print(text2) # тушь тушь вытрись становись
Или же
Цитата Сообщение от NatallyaR Посмотреть сообщение
Из исходного текста эти слова удалить.
Python
1
2
3
4
5
6
7
8
result = set(result)
for word in result:
    text = re.sub(r'\b{}\b'.format(word), '', text, flags=re.I)
print(text)
#Даже шею, даже уши ты испачкал в черной туши.
# скорей под душ. Смой с ушей под душем .
#Смой и с шеи  под душем. После душа  суше.
#Шею суше, суше уши - и не пачкай больше уши.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.09.2020, 15:02
Помогаю со студенческими работами здесь

Строковый тип данных
дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 букв; между словами не менее одного пробела, за...

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

строковый тип данных
Дано слово, состоящее из четного числа букв. Получить и вывести на экран его первую половину. program z_20; uses crt; var...

строковый тип данных
помогите пожалуйста решить задачи буду очень признателен! мне очень нужно!

Строковый тип данных
В заданный строке добавить в конец строки символ &lt;&lt;&gt;&gt;.


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru