Как сделать список запрещённых символов
Возник вопрос, как можно сделать список запрещённых символов, в сообщений пользователя? Я знаю как сделать запрет на символы, но хотелось бы узнать как можно будет оптимизировать. Мой вариант:
elif '@' in message.text or '/' in message.text or '*' in message.text or '#' in message.text or '!' in message.text or '$' in message.text or '%' in message.text or '^' in message.text or '?' in message.text or '/' in message.text or '[' in message.text or ']' in message.text or '-' in message.text or '_' in message.text or ')' in message.text or '+' in message.text or '=' in message.text or ';' in message.text or '`' in message.text or '~' in message.text or '.' in message.text or ',' in message.text or '<' in message.text or '>' in message.text or "'" in message.text or '"' in message.text or '|' in message.text or ';' in message.text or ';' in message.text:
await bot.send_message(message.from_user.id, "Вы вели запрещенный символ")
Ответы (2 шт):
Автор решения: ПИТОНИСТ версия-3-8
→ Ссылка
Вот так:
for i in message.text:
if i in '''@/*#!$%^?\[]-_)+=;`~.,<>'"|''':
await bot.send_message(message.from_user.id, "Вы ввели запрещенный символ")
Автор решения: Stanislav Volodarskiy
→ Ссылка
Не надо проверять посимвольно - это медленно. Превратите сообщение в set и пересеките с запрещёнными символами:
prohibited = set('@/*#!$%^?\[]-_)+=;`~.,<>\'"|')
if set(message.text) & prohibited:
await bot.send_message(message.from_user.id, "Вы ввели запрещенный символ")