Почему две одинаковые переменные не проходят проверку на равенство?
Делаю телеграм бот. Две переменные msg и answer в этом примере равны, но условие равности не работает.
Подскажите, в чем проблема?
И параллельно, как можно изменять id в SQL запросе. Например, сделать чтобы выпадал вопрос с рандомным id каждый раз. Если просто подставляю переменную из цикла рандомного вместо цифры, не работает.
def check_answer(message):
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()
cursor.execute("SELECT answer FROM questions WHERE id=3")
answer = cursor.fetchone()
msg = message.text
if msg == answer:
bot.send_message(message.chat.id, "Правильный ответ! Идем дальше?")
elif msg != answer:
bot.send_message(message.chat.id, "Неправильно")
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
cursor.fetchone() всегда возвращает кортеж (tuple) - даже в том случае если в запросе вы выбираете только один столбец.
Поэтому попробуйте так:
row = cursor.fetchone()
answer = row[0] if row else None
...
Чтобы проверить тип переменной:
print(type(answer))