@Vitaliy445

Что не так с этой проверкой в цикле?

Вот код
def get_all_users_First(chat_id_user):
    db.cursor.execute("SELECT chat_user_id FROM users")
    rows = db.cursor.fetchall()
    print(rows)
    for row in rows:
        print(chat_id_user)
        print(row)
        print(rows)
        if chat_id_user == row:
            print('True')
            return True
        else:
            print('false')
            return False

6140d4d49eb1a669828625.png

Что не так? Вроде первые елементы одинаковые, но if все равно выдает False
  • Вопрос задан
  • 84 просмотра
Решения вопроса 4
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
if chat_id_user == row[0]:

Вроде первые елементы одинаковые
И не одинаковые, и не элементы.

1641862320 и ('1641862320',) - что здесь общего? Ничего.
1641862320 - строка, ('1641862320') - кортеж.
Ответ написан
Комментировать
SoreMix
@SoreMix Куратор тега Python
yellow
По-моему они разные, 1641862320 и ('1641862320',). Аж на 5 символов отличаются.

Вы сравниваете абсолютно разные вещи, а именно строку (ну или число) с кортежем.

if chat_id_user == row[0]
Ответ написан
Комментировать
ScriptKiddo
@ScriptKiddo
Это tuple - следовательно обращаемся по индексу.
chat_id_user == row[0]
Ответ написан
Комментировать
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Так вы int сравниваете с tuple
У них даже типы разные
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы