У меня есть небольшая база данных с одной таблицей с именем cards
.
- Столбец
number
равен TEXT
. - У меня несколько строк, и я пытаюсь получить Пользовательский ввод вводит строку
Например:
connection = sqlite3.connect('card.s3db')
cursor = connection.cursor()
card_check = cursor.execute('SELECT number FROM card')
connection.commit()
prompt_card_number = input("Enter your card number:\n")
for number in card_check:
if number == prompt_card_number:
check_stage2()
else:
print("\nWrong card number or PIN!")
connection.close()
По какой-то причине я ввожу соответствующий номер карты в базу данных, но все равно получаю Wrong card number or PIN!
и не могу пройти check_stage2()
. Что я делаю не так?
Изменить: Хорошо, теперь я попробовал этот код:
def check_stage1():
connection = sqlite3.connect('card.s3db')
cursor = connection.cursor()
cursor.execute('SELECT number FROM card')
card_check = cursor.fetchall()
print(card_check)
prompt_card_number = input("Enter your card number:\n")
for number in card_check:
if number == prompt_card_number:
# account_interface()
print("ok")
else:
print("\nWrong card number or PIN!")
connection.commit()
connection.close()
И card check
возвращает список таких странных кортежей, как этот [('4000006601632606',), ('4000006102182200',), ('4000009048898194',), ('4000006526735435',), ('4000002961735386',), ('4000008741268614',), ('4000001893515676',)]
Но я не Я не знаю, как пройти через это. Кажется, что это все равно не работает, если я ввожу правильный номер.
Редактировать 2: Я узнал, как перебирать кортежи, но все равно получаю Wrong card number or PIN!
, даже если тип number [0] - str , и я тоже ввел str. Смотрите этот код:
def check_stage1():
connection = sqlite3.connect('card.s3db')
cursor = connection.cursor()
cursor.execute('SELECT number FROM card')
card_check = cursor.fetchall()
print(card_check)
prompt_card_number = input("Enter your card number:\n")
for number in card_check:
if number[0] == prompt_card_number:
# account_interface()
print(number[0])
print(type(number[0]))
else:
print("\nWrong card number or PIN!")
Возвращает Enter your card number: 4000009048898194 <class 'str'>
описательное изображение