Нахождение восклицательных знаков в реакциях на сообщения. Discord.Py

#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, и теперь это работает.