#python #discord #discord.py
Вопрос:
У меня небольшая проблема с процессом, который просматривает все сообщения в канале и оценивает их на предмет определенных реакций.
У меня есть цикл, и он ищет Восклицательный знак, Стрелку влево, Красный Крестик и Зеленую галочку в таком порядке, так как сообщения отправлены для проверки модом.
for i in msg.reactions:
if str(i) == ("✅"):
status = "Complete"
break
elif str(i) == ("❌"):
status = "Complete"
break
elif str(i) == ("⬅️"):
status = "Reviewed"
elif str(i) == ("❗"):
status = "Claimed"
else:
status = "Unclaimed"
По какой-либо причине он абсолютно распознает восклицательные знаки и перечисляет все с восклицательным знаком как невостребованные.
У меня такое чувство, что это может быть кодировка, которую я использую в Notepad , но я пробовал различные настройки и, похоже, не могу заставить ее вести себя по-другому.
Комментарии:
1. Совет: Используйте
in
оператор для контейнеров:if str(i) in ("✅", "❌"): status = "Complete"
или поместите его в словарь —status = {"✅": "Complete", "❌": "Complete", "⬅️": "Reviewed", "❗": "Claimed"}.get(str(i), "Unclaimed")
. Вы также можете использовать имена в юникоде для этих символов.2. Я бы предпочел, чтобы вы перешли на
VS Code
илиPyCharm
, поскольку это лучшие IDE для программирования на Python.
Ответ №1:
Это была кодировка. Переключился с UTF-8 на UTF-8-BOM, и теперь это работает.