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

Строка: Найти первое вхождение подстрок ‘not’ и ‘bad’

21.02.2019, 08:04. Показов 7143. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка. Найти первое вхождение подстрок ‘not’ и ‘bad’. Если ‘bad’ идёт после ‘not’, заменить всю подстроку ‘not … bad’ на ‘good’. Пример: This dinner is not that bad! -> This dinner is good!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2019, 08:04
Ответы с готовыми решениями:

Строка: В заданной строке удалить первое вхождение строки '«»'
В заданной строке удалить первый символ «», который найдется в строке. Где то ошибка, не могу понять где Program var15_stroki; Uses...

Строка: Заменить в строке S первое вхождение строки S1 на строку S2.
Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2.

Строка: В строке заменить на ‘ks’ первое вхождение ‘x’, если такое есть
. Дан текст. Напечатать его, предварительно преобразовав его следующим образом: заменить на ‘ks’ первое вхождение ‘x’, если такое есть;

14
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.02.2019, 14:40
Python
1
2
3
4
5
6
7
>>> 'This dinner is not that bad!'.find('bad')
24
>>> 'This dinner is not that bad!'.find('not')
15
>>> re.sub(r'(not\s.*\sbad)', 'good', 'This dinner is not that bad!')
'This dinner is good!'
>>>
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
21.02.2019, 17:38
Dilshod0283,
Python
1
2
3
4
5
6
f='This dinner is not that bad!'
n=f.find('not')
b=f.find('bad')
if n<b:
    f=f.replace('not that bad', 'Good')
print(f)
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
21.02.2019, 17:47
Лучший ответ Сообщение было отмечено Рыжий Лис как решение

Решение

Lucky64, тогда уж так
Python
1
2
3
4
5
6
f='This dinner is not that bad!'
n=f.find('not')
b=f.find('bad')
if n<b:
    f=f.replace(f[n:b+3], 'Good')
print(f)
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
21.02.2019, 17:57
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
[n:b+3]
не могу понять принцип действия, объясните плс

Добавлено через 38 секунд
что делает"+3"?
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
21.02.2019, 17:59
Цитата Сообщение от Lucky64 Посмотреть сообщение
не могу понять принцип действия, объясните плс
это срез строки

вот вы нашли n - начало первого слова (not) и b - начало второго (bad). но так как как вам нужен срез строки до конца второго слова, то вы прибавляете количество букв в нём (b+3)
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
21.02.2019, 18:05
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
вот вы нашли n - начало первого слова (not) и b - начало второго (bad). но так как как вам нужен срез строки до конца второго слова, то вы прибавляете количество букв в нём (b+3)
ааай блин мой промах, совсем вылетело из головы, что в выражении n:b b - не включается в срез, и вы включили его при помощи прибавления, все теперь понял, спасибо!

Добавлено через 1 минуту
m0nte-cr1st0,
Ну раз на то пошло, то так еще более красиво по моему
Python
1
2
3
4
5
6
f='This dinner is not that bad!'
n=f.find('not')
b=f.find('bad')
if n<b:
    f=f.replace(f[n:-1], 'Good')
print(f)
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
21.02.2019, 18:10
Lucky64, по-хорошемо, вообще вот
Python
1
2
3
4
5
6
7
8
9
10
11
F='This dinner is not that bad!'
N = 'not'
B = 'bad'
G = 'Good'
 
n=F.find(N)
b=F.find(B)
if n<b:
    F=F.replace(F[n:b+len(B)], G)
 
print(F)
Добавлено через 1 минуту
Цитата Сообщение от Lucky64 Посмотреть сообщение
Ну раз на то пошло, то так еще более красиво по моему
нет. так вы привязываетесь к тому, что "bad" будет в конце строки. Уберите восклицательный знак из строки - и проверьте работоспособность кода)
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
21.02.2019, 18:10
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
по-хорошемо, вообще вот
Согласен, отлично! ну суть одна, спасибо!
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.02.2019, 18:11
Python
1
2
3
4
5
6
7
8
9
def finder(a):
    b=a.find('not' )
    c=a.find('bad')
    if b<c:
        a=a.replace(a[b:c+3],'Good')
    print(a)
if __name__ == '__main__':
    a='This dinner is not that bad!'
    finder(a)
1
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
21.02.2019, 18:26
Dax,
Ну это совсем КАЕФ
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.02.2019, 18:30
Посмотрел я на происходящее, понял, что , наверное, следует оформлять программки, как следует)
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
21.02.2019, 18:31
Dax,
Пока еще не до рос видать я
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.02.2019, 18:42
Lucky64, это не страшно, что чуть иначе оформлена,но, если вспомнить, окажется, что у программки(даже маленькой), должна быть точка входа, должен быть порядок, при заявлении переменных, должно быть по уму), чтоб где угодно запустил и заработало (для этого main и прочее), а не сразу в интерпретаторе, как выше было.
Со временем, оно само получаться будет, на автомате.

Добавлено через 3 минуты
Оно, конечно, так - тоже работает, да и точка входа-не важна в данном языке до критичности, но, так, как я считаю, просто, правильней.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
21.02.2019, 20:32
Python
1
2
3
4
5
f='This dinner is not that bad!'
n=f.find('not')
b=f.find('bad')
s = f[:n] + 'good' + f[b+3:]
print(s)
Добавлено через 5 минут
Хотя ваш вариант с replace лучше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.02.2019, 20:32
Помогаю со студенческими работами здесь

Строка: Напечатать первое вхождение букв в тексте, сохраняя их порядок...
Дан текст из строчных латинских букв,цифр и знаков &quot;+&quot; за которыми следует точка.Напечатать первое вхождение букв в тексте сохраняя их...

Дана строка. Если какой-то символ встречается в ней более одного раза, первое вхождение этого символа оставить
Дана символьная строка. Если какой-то символ встречается в ней более одного раза, первое вхождение этого символа оставить без измениния,...

Дана символьная строка. Если какой-то символ в ней встречается более одного раза, оставить только первое вхождение
Народ.помогите решить задачку Дана символьная строка. Если какой-то символ в ней встречается более одного раза, оставить только первое...

Найти первое вхождение цифр
Здравствуйте!!! Подскажите как можно найти только первое вхождение цифр, например: есть строка(строки рандомные как и цифры в них): ...

Строка: Определить слово, в котором произошло первое вхождение буквы "d"
Всем доброго времени суток. Возникла проблема при написании программы, где частью задания является следующее: У нас есть две строки....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки 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
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru