Форум сайта python.su
VANISHED
Отредактировано ntram (Окт. 13, 2022 15:46:30)
Офлайн
PalromЕсли мы искомые слова подаём в качестве аргументов, то мы в любой момент можем сменить отлов “catch me” на отлов “hide her”, например. И вот когда ты сделаешь “hide her”, в конечный результат будет добавляться старое “catch me” и придётся менять этот участок кода ещё. А если у тебя это будет привычкой такой систематической, то тебе после каждого изменения кода в одном месте надо будет лазить по всему коду и менять все связанные куски, и это притом, что их ещё не так просто будет найти сходу. Надо будет их сначала найти все, потом надо будет их поменять. Почему надо будет их искать? Потому что может случиться так, что код тебе нужно будет менять через месяц или через полгода, и к тому времени ты уже не будешь помнить, где и что ты там делал в этом коде несколько месяцев назад. Поэтому надо всё параметризировать, делать общим, а управление этим всем выводить в одну точку, чтобы в ней легко можно было что-то поменять и вся программа при этом сразу правильно поменялась.
Зачем добавлять в новый список word, если результат нужен строго фиксированный ?
PalromЕсли запятую после catch поставить, то сломается код.
Почему шаблон применяется только к “ме”?
Whom do you want to catch? Me?
She is going to catch, me too.
Отредактировано py.user.next (Июль 3, 2022 15:13:49)
Офлайн
py.user.next
сменить отлов “catch me” на отлов “hide her”, например
word = ['some', 'line', 'blablabla', 'you', 'dont', 'need', 'to', 'catch', 'this', 'line', 'try', 'to', 'catching', 'me', 'but', 'not', 'me', "I'm", 'here,', 'catch', 'me!!!'] def find_pair(wordlist, word1, word2): res = [] for n, i in enumerate(wordlist): if n + 1 < len(wordlist): first, second = i, wordlist[n+1] if first[:len(word1)].lower() == word1 \ and second[:len(word2)].lower() == word2: res.append(f'{first} {second}') return res print(find_pair(word, 'to', 'catch'))
['to catch', 'to catching']
print(find_pair(word, 'catch', 'me'))
['catching me', 'catch me!!!']
print(find_pair(word, 'need', 'to'))
['need to']
Отредактировано Palrom (Июль 3, 2022 21:32:03)
Офлайн
Ребята, простите меня конечно новичка, но из того, что я уже выучил, разве так нельзя?)
word = ['some', 'line', 'blablabla', 'you', 'dont', 'need', 'to', 'catch', 'this', 'line', 'try', 'to', 'catch', 'me', 'but', 'not', 'me', "I'm", 'here,', 'catch', 'me!!!']
s = "".join(word)
if "catchme" in s:
a = s.count("catchme")
l=[]
for i in range(a):
l.append("catch me")
print(a)
print(l)
ntramПолучается, что могу )
И Вы когда-нибудь пробовали решать задачи самостоятельно?
Офлайн
VANISHED
Отредактировано ntram (Окт. 13, 2022 15:46:37)
Офлайн
ntramпочему? поиск же четко по “catchme”
твой код съест что то на подобии “catch meal”
Офлайн
Ничо там не съедает. Проверил только что
Офлайн
VANISHED
Отредактировано ntram (Окт. 13, 2022 15:46:54)
Офлайн
VladimirDegА чего сразу-то не посчитать без in?if "catchme" in s: a = s.count("catchme")
a = s.count("catchime")
VladimirDegНу так ждали от вас деталей задания, что можно засчитывать, что нельзя. Но судя по всему у вас их и нет. Скрипт ваш подойдёт только для этого конкретного списка, т.е. он бесполезен будет в большинстве случаев.
поиск же четко по “catchme”
VladimirDegСъедает. Более того catch!me пропустит.
Ничо там не съедает.
Офлайн
PalromПараметризация да (прошла успешно), а сравнение слов неправильно происходит. Если указано catch, например, то никакие catching не должны подходить под это сравнение.
Ну тогда наверное как-то так:... def find_pair(wordlist, word1, word2): res = [] for n, i in enumerate(wordlist): if n + 1 < len(wordlist): first, second = i, wordlist[n+1] if first[:len(word1)].lower() == word1 \ and second[:len(word2)].lower() == word2: res.append(f'{first} {second}') return res ...
КодВывод:print(find_pair(word, 'catch', 'me'))['catching me', 'catch me!!!']
Отредактировано py.user.next (Июль 5, 2022 00:57:25)
Офлайн