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

Как изменить логику выполнения условия скрипта python?

30.05.2018, 16:10. Показов 1307. Ответов 6

Студворк — интернет-сервис помощи студентам
Всем привет! Прошу помощи т.к. с питоном не особо знаком.

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

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


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
elif "#" == txt[0]:
                txt_split =txt.strip().split(" ")
                i = 0
                tags = []
                while i < len(txt_split) and txt_split[i][0] == "#":
                    tags.append(txt_split[i].lower())
                    i+=1
                if i != len(txt_split) or 'reply_to_message' in msg:
                    approved = []
                    rejected = []
                    for tag in tags:
                        if tag in chats:
                            if chats[tag]['id'] != chat_id:
                                approved.append(chats[tag]['name'])
                                bot.forwardMessage(chats[tag]['id'], chat_id, msg['message_id'])
                                if 'reply_to_message' in msg:
                                    bot.forwardMessage(chats[tag]['id'], chat_id, msg['reply_to_message']['message_id'])
                        else:
                            rejected.append(tag)
                    if len(rejected) > 0:
                        bot.sendMessage(chat_id, "Failed to send messages to tags <i>" + ", ".join(rejected) + "</i>", parse_mode="HTML")
                else:
                    bot.sendMessage(chat_id, "Failed to send a message only with tags which is not a reply to another message")
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2018, 16:10
Ответы с готовыми решениями:

Необходимо изменить логику выполнения алгоритма схемы на Java
Кто может изменить логику выполнения из 1-ой схемы на 2-ую схему, если есть код выполнения для первой схемы?

Необхоимо изменить логику выполнения алгоритма для схемы на Java
/** * Solves everything and returns right answer * @param exprList * @param input * @return */ ...

Изменить логику системы на Python+Django и отладить web-интерфейс
Задача: Устранить недостатки и внести изменения в систему выбора маршрута для исходящих телефонных вызовов в соответствиис частными...

6
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
30.05.2018, 20:19
Python
1
elif "#" in txt
0
0 / 0 / 0
Регистрация: 30.05.2018
Сообщений: 3
31.05.2018, 00:02  [ТС]
да, но в 5 строке кода опять идет привязка, если # == 0
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
31.05.2018, 01:01
так вы скажите, что должно происходить, если # не первый символ
0
0 / 0 / 0
Регистрация: 30.05.2018
Сообщений: 3
31.05.2018, 01:14  [ТС]
сейчас условие срабатывает только если # является первым символом сообщения, тогда бот делает пересылку его в дргугую группу автоматом, а нужно чтобы он искал не только в первом символе, а во всем теле сообщения, даже если он (хэштег) будет 5, 10 или 100-ым по индексу в сообщении
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
31.05.2018, 01:28
если просто нужно вынуть хэши, то можно вот так
Python
1
2
3
4
import re
txt = 'hello #we most certainly #are glad to welcome you in #sparta spots club'
tags = re.findall(r'#[^\s]*', txt)
print(tags)
Code
1
['#we', '#are', '#sparta']
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
31.05.2018, 13:50
Цитата Сообщение от sheefeer Посмотреть сообщение
да, но в 5 строке кода опять идет привязка, если # == 0
так измените
Python
1
while i < len(txt_split) and  "#" in txt_split[i]:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2018, 13:50
Помогаю со студенческими работами здесь

Получить результат выполнения скрипта perl во время выполнения скрипта bash
доброго времени суток. знатоки, нужна ваша помощь- подскажите как из bash-скрипта вызвать perl-скрипт, получить результат его выполнения и...

Создать функцию с произвольным именем во время выполнения python скрипта
Предположим во время выполнения python скрипта нужно создать функцию с произвольным именем, содержащимся в строке как это можно сделать?...

Как из одного скрипта изменить переменную (int) другого скрипта?
У меня есть два скрипта (money который отвечает за общее количество денег и CarBuy который отвечает за покупку машины). Мне нужно, чтобы...

Как изменить логику отображения текста в QTextEdit
В графическом компоненте QTextEdit имеются вертикальная и горизонтальная полосы прокрутки. Сейчас логика работы этих элементов такова:...

Как из Python скрипта выполнить другой python скрипт?
Как из Python скрипта выполнить другой python скрипт? Если он находится в той же папке но нужно передать еще передать скрипту аргументы.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 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