Уведомления

Группа в Telegram: @pythonsu

#1 Июль 2, 2022 20:26:08

ntram
Зарегистрирован: 2022-06-19
Сообщения: 75
Репутация: +  3  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

VANISHED

Отредактировано ntram (Окт. 13, 2022 15:44:50)

Офлайн

#2 Июль 2, 2022 20:53:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9870
Репутация: +  853  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

ntram
критикуешь - предлагай
А ты не задумывался о том, почему я вижу твои ошибки, а ты свои ошибки не видишь?



Офлайн

#3 Июль 2, 2022 20:57:03

ntram
Зарегистрирован: 2022-06-19
Сообщения: 75
Репутация: +  3  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

VANISHED

Отредактировано ntram (Окт. 13, 2022 15:44:55)

Офлайн

#4 Июль 2, 2022 21:55:54

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

ntram
где?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Июль 2, 2022 22:03:21

ntram
Зарегистрирован: 2022-06-19
Сообщения: 75
Репутация: +  3  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

VANISHED

Отредактировано ntram (Окт. 13, 2022 15:45:01)

Офлайн

#6 Июль 2, 2022 23:03:33

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

  
word = ['some', 'line', 'blablabla', 'you', 'dont', 'need', 'to', 'catch', 'this', 'line', 'try', 'to', 'catch', 'me',
        'but', 'not', 'me', "I'm", 'here,', 'catch', 'me!!!']
pattern = re.compile('[Mm][Ee][!?. ]*')
res = []
for n, i in enumerate(word):
    if n + 1 < len(word):
        if i.lower() == 'catch' and pattern.match(word[n+1]):
            res.append(' '.join((i, word[n+1])))
print(res)
print(len(res))

Офлайн

#7 Июль 3, 2022 02:22:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9870
Репутация: +  853  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

ntram
А ты не задумывался о том, что ставить себя выше других и показывать какой ты крутой, не делает тебя реально крутым? У тебя даже в репутации это написано
Если ты обратишь внимание, то первый минус (когда их ввели вообще, поначалу их не было) мне влепили после 374-го плюса (я сейчас посчитал скриптом на awk). Я себе плюсы под другими никами не ставил и никогда их не просил. То есть это реальные плюсы. Если ты сможешь написать скрипт, который найдёт все минусы, которые я поставил кому-либо, то ты также увидишь, что я их о-о-очень редко ставлю. Буквально там штук пять наберётся за все годы. Вот это говорит о том, что я очень уравновешен психически. Теперь давай посмотрим, за что мне минус поставил этот KEKIs (видимо, ты не читал сообщение, на котором минус стоит). Во-первых, этот придурок залез в чужой топик и начал превращать его в свалку. Ну, ладно, это у нас не преследуется, потому что люди приходят вообще не знающие, как там работает Интернет и так далее, они в этом не виноваты. Он демонстрировал, что он умный и прямо в коде соображает всё, но вот что-то в чужой топик залез, так как ума не хватило создать свой, как это принято на всех форумах в Интернете. Ну, ладно, ошибается человек, слишком много о себе думает и так далее, с кем не бывает по молодости. Дальше он там спрашивал, я ему всё объяснял, он опять спрашивал, я ему опять объяснял. Так это затянулось до четвёртой страницы - вся эта его херня в чужом топике. Дальше мы выясняем, что Тимофей (по урокам которого он учится) не доделал тесты и в итоге его неправильный код проходит эти тесты. Там не хватает одного теста как минимум, который не пропустил бы его неправильный код. Я ему показал, что его код неправильный, наглядно показал. В итоге в результате всей этой помощи я получаю минус на четвёртой странице за то, что он спросил, как работает эта функция и я ему нашёл (за него нашёл, за придурка за этого, типа умного, который на самом деле дебил какой-то) исходник этой функции. И в итоге это всё закончилось тем, что я этому чмошнику просто минус в ответ поставил, что я делаю очень редко (я тебе уже говорил выше), и забыл про него уже десять раз, не хватало ещё своё время на всяких придурков тратить. Вот это редко, оно наступило. Ну, там понятно, что этот козёл думал, что мы тут за него решать всё должны, прямо обязаны, там понятно всё. У таких уебанов мозги вот так вот устроены. Где-то в детстве его разбаловали игрушками, потом он вырос и превратился вот в это вот существо какое-то. Я не ставил себя выше него, как ты говоришь. Он точно так же и тебе минус поставит, потому что ты не удовлетворяешь какое-то там его требование (он там хочет игрушку, а ты ему не покупаешь игрушку, где-то там с детства эта хуйня у него произрастает, мне как-то неинтересно в этом разбираться; тут таких, как он, толпы приходят и все им всё должны). И что я буду тебе писать в таком случае, когда он тебе там что-то поставит? Смотри, ntram, он тебе минус поставил и написал там, что ты козёл, и значит, так и есть, он же написал это? Понимаешь, он может и плюс тебе поставить, это ничего не значит. Его мнение формируется через вот эту вот хрень - кто ему дал игрушку и кто ему не дал игрушку. Это не значит ничего.

Дальше ты вот говоришь
ntram
критикуешь - предлагай
Почему я этот код не пишу сюда и сходу? Если я его напишу, что тогда будет писать xam1816? Что тогда будешь писать ты? Что тогда будет писать ещё кто-то, кому это надо? Вы оба учитесь. Чтобы научиться, надо писать. Мне этой хуйне учиться не надо, я их написал тысячи, подобных кодов, когда я учился их писать; это было лет десять назад. Сейчас же я его написал в голове за три секунды, и просто держу его в голове. Мне не нужно его даже записывать, я его просто вижу. А потом я смотрю на ваши и сверяю со своим, который оптимальный. Естественно, когда я вижу грубейшую ошибку, и человек при этом ещё рассказывает, какой он молодец и какой он гениальный и такой прекрасный код написал, я тут же указываю на неё, потому что я вижу, что из-за неё поплывёт что-то дальше и в конце будет вообще полный пиздец. То есть код придётся писать заново, а этот такой “умный” и даже “гениальный” вариант придётся просто выбрасывать; а писать, знаешь, бывает надо много, и оно такое, что оно не три строчки занимает, а несколько тысяч строк - попробуй выброси такой объём. Кто тебе скажет ещё, что через in нельзя вот так вот строку искать, потому что она найдёт внутренности? Да, может быть, я тебе скажу, что нужно сделать нормализующую функцию слова, а потом применить её к обоим словам перед их сравнением с шаблоном. А может, я посчитаю, что тебе ещё рано грузиться такими вещами, потому что у тебя тогда мозг вообще распухнет и ты вообще придёшь к каше или свалке в голове, и не скажу тебе, что так надо сделать, а просто сделаю вид, что ты идеально всё написал. Вот часто я так делаю, когда вижу, что xam1816 какую-то хрень написал, потому что понимаю, что ему ещё рано грузиться многими-многими вещами. Он пришёл сюда нулём, вот он уже функции пишет. Не знал он про них, мы ему рассказали, что надо вот так делать. Сначала он монолитные коды писал с большой глубиной. Естественно, он не знал про цикломатическое число графа потока выполнения, я ему просто говорил “не пиши глубокие коды, не надо, пиши неглубокие”, я его не грузил всем этим. Вот у него это поправилось со временем. Сейчас он подходит к тому, чтобы начать тесты писать, потому что у него всё без тестов всегда и он перепроверяет свой код по сто раз после каждого изменения. Ну, естественно, через это все проходят, это обязательный этап.

py.user.next
А ты не задумывался о том, почему я вижу твои ошибки, а ты свои ошибки не видишь?
А здесь я имел в виду, что ты не проделал то, что проделал я. Поэтому у тебя нет такого мышления, какое есть у меня. Чтобы видеть вот эти in'ы, которые я увидел, а ты не увидел, надо прорешать сотни математических задач на языке программирования. То есть вот эти бесполезные коды типа “напишите программу, решающую уравнение” или там “напишите программу, выводящую все совершенные числа” или там “напишите функцию вычисления косинуса до двадцатого или там тридцатого знака”, - они все очень сильно протренировывают вот это мышление о границах. Всякие сортировки эти ненужные, работа с матрицами тоже никому не нужная, они тоже протренировывают вот эти навыки мышления. И когда ты их прорешиваешь, сами они по себе не нужны, но в конце у тебя остаются навыки мышления, которые потом работают при каждом написании любого кода. Вот это я имел в виду. И нужно не залупаться на то, что тебе на ошибку указали, а нужно анализировать то, почему и как ты пришёл к этой ошибке, чего у тебя не хватает, почему ты не заметил её. Именно это исправит вот эти твои недочёты и ты станешь писать сразу правильный код, а не поправками заниматься этими постоянными.



Отредактировано py.user.next (Июль 3, 2022 10:47:02)

Офлайн

#8 Июль 3, 2022 09:16:00

VladimirDeg
Зарегистрирован: 2022-06-16
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

ZerG
Тз не совсем понятно
из каких пар таки дожно состоять catch me
из произвольного набора илиже только там где ME идет сразу после catch?
Выход должен быть:
['catch me', 'catch me']

Офлайн

#9 Июль 3, 2022 09:27:27

VladimirDeg
Зарегистрирован: 2022-06-16
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

xam1816
word = ['some', ‘line’, ‘blablabla’, ‘you’, ‘dont’, ‘need’, ‘to’, ‘catch’, ‘this’, ‘line’, ‘try’, ‘to’, ‘catch’, ‘me’,
‘but’, ‘not’, ‘me’, “I'm”, ‘here,’, ‘catch’, ‘me!!!’]
pattern = re.compile('*')
res =
for n, i in enumerate(word):
if n + 1 < len(word):
if i.lower() == ‘catch’ and pattern.match(word):
res.append(' '.join((i, word)))
print(res)
print(len(res))
Выдает ошибку по re
NameError: name ‘re’ is not defined

и еще прошу прощения, а это точно начальный python? )
Ни в коим случаем не в претензиях ) и будут пробовать разобраться, но вдруг есть проще решение для понимания новичков

Офлайн

#10 Июль 3, 2022 13:19:16

Palrom
Зарегистрирован: 2022-04-21
Сообщения: 82
Репутация: +  5  -
Профиль   Отправить e-mail  

Нахождение подстроки в строке

Разрешите вкинуть свои пять копеек..

VladimirDeg
Выдает ошибку по re
xam1816 просто запамятовал добавить import re в начало скрипта. Вот так будет работать:
  
import re
 
word = ['some', 'line', 'blablabla', 'you', 'dont', 'need', 'to', 'catch', 'this', 'line', 'try', 'to', 'catch', 'me',
        'but', 'not', 'me', "I'm", 'here,', 'catch', 'me!!!']
pattern = re.compile('[Mm][Ee][!?. ]*')
res = []
for n, i in enumerate(word):
    if n + 1 < len(word):
        if i.lower() == 'catch' and pattern.match(word[n+1]):
            res.append(' '.join((i, word[n+1])))
print(res)
print(len(res))

Пара вопросов есть к этому скрипту впрочем. Почему шаблон применяется только к “ме”? Зачем добавлять в новый список word[n+1], если результат нужен строго фиксированный ['catch me', ‘catch me’]?
Просто во втором случае word[n+1] будет “me!!!” и в таком виде в список и добавится.
И пары типа ['catch', ‘melon’] этот шаблон так же ест и добавляет в список res:
 ['catch melon', 'catch me!!!']

VladimirDeg
а это точно начальный python?
Если вы учитесь три недели и это задание надо преподу сдать, то неладное он заподозрит думаю.
https://tproger.ru/translations/regular-expression-python/ - Тут можно ознакомиться с регулярками.

Модификация скрипта, выдающая такой же результат, но без регулярных выражений:
  
word = ['some', 'line', 'blablabla', 'you', 'dont', 'need', 'to',
        'catch', 'this', 'line', 'try', 'to', 'catch', 'me',
        'but', 'not', 'me', "I'm", 'here,', 'catch', 'me!!!']
res = []
for n, i in enumerate(word):
    if n + 1 < len(word):
        first, second = i, word[n+1]
        if first[:5].lower() == 'catch' and second[:2].lower() == 'me':
            res.append('catch me')
print(res)
Программа так же точно ест ['catch', ‘melon’], но тут уже нужно подробное описание задания, допустимо такое или нет.


py.user.next
Съест такие пары типа
 
catch smew
catching women
catchment smells

Хороший тамада и конкурсы интересные


Отредактировано Palrom (Июль 3, 2022 13:59:09)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version