Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2021, 01:25   #1
Ilya221122
 
Регистрация: 09.01.2021
Сообщений: 6
По умолчанию Проблема с массивами

Здравствуйте,
И так, проблема такова:
Хотел сделать проверку слова тригера if msg in ['bw', 'бс'], и так же что бы после этих триггер слов стояло ещё одно слово. Помню на другом языке было так 'bw'+msg[1].
То есть что бы он проверял слово сочетание bw (тут любое слово),
После чего заносил это слово в переменную,
bw[c] = msg[1]
c=c+1
где переменная [c] объявлена заранее как c = 1.
Вообщем фишка этого кода, добавлять слова стоящие после bw или бс, в список запрещённых слов, то есть в отдельную переменную.
Вот часть кода(Да я работаю с vk_api для беседы бота):
Код:
c = 1
bw = [c]

for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW:
        if event.to_me:
            if event.from_chat:
                msg = event.text.lower()
                id = event.chat_id

                if msg in ['{bw[1]}', '{bw[2]}', '{bw[3]}', '{bw[4]}', '{bw[5]}']:
                    sender(id, f'@id{event.user_id}, вы нарушили правило беседы!')
                    
                if msg in ['help', 'помощь']:
                    sender(id, f'@id{event.user_id}, Вот полный список команд:\n help(помощь) -> Вызвать этот список\n bw(бс) -> Блокировка запрещённых слов')

                if msg in ['bw', 'бс']:
                    if msg[1] != '':
                        sender(id, 'Слово {msg[1]} было запрещено.')
                        bw[c] = msg[1]
                        c=c+1
Ilya221122 вне форума Ответить с цитированием
Старый 12.01.2021, 04:06   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
bw = []

for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW:
        if event.to_me:
            if event.from_chat:
                msg = event.text.lower()
                id = event.chat_id

                offence = False
                for w in bw:
                    if w in msg:
                        offence = True
                        break
                
                if offence:
                    sender(id, f'@id{event.user_id}, вы нарушили правило беседы!')
                    continue
                    
                if msg in ['help', 'помощь']:
                    sender(id, f'@id{event.user_id}, Вот полный список команд:\n help(помощь) -> Вызвать этот список\n bw(бс) -> Блокировка запрещённых слов')

                if msg[:2] in ['bw', 'бс']:
                    word = msg[3:]
                    if word != '':
                        sender(id, 'Слово {word} было запрещено.')
                        bw.append(word)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 12.01.2021, 12:36   #3
Ilya221122
 
Регистрация: 09.01.2021
Сообщений: 6
По умолчанию

спасибо)
Ilya221122 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с массивами на C++. Creston Visual C++ 6 10.03.2015 19:47
проблема с массивами. krade23 Общие вопросы C/C++ 0 04.11.2012 23:15
Проблема с массивами rbkblhjy Паскаль, Turbo Pascal, PascalABC.NET 6 31.08.2011 18:59