connect = sqlite3.connect('INFO.db')
cursor = connect.cursor()
# у нас есть пустой курсор. Он не вернёт никаких данных
cursor.execute("SELECT ID, Name FROM users WHERE Rank = '1'")
# теперь курсор может возвращать результаты запроса, строку за строкой
rows = cursor.fetchall()
# в rows лежат ВСЕ возвращённые строки. Больше этот курсор уже ничего не отдаст, мы его опустошили.
# Строк может быть много, так что не стоит использовать fetchall(), если тебе не нужен весь список строк сразу.
cursor.execute("SELECT ID, Name FROM users WHERE Rank = '1'")
# теперь курсор сброшен. он будет возвращать результаты последнего выполненного запроса
row1 = cursor.fetchone()
# в row1 лежит первая возвращённая строка (или None, если строк не было).
row2 = cursor.fetchone()
# в row2 лежит вторая возвращённая строка, так как первую мы уже выбрали выше (или None)
cursor.execute("SELECT ID, Name FROM users WHERE Rank = '1'")
# теперь курсор сброшен. он будет возвращать результаты последнего выполненного запроса
for row in cursor:
# выбираем по одной строке за раз. удобно, если строк много, но они не нужны нам все сразу
print(row)
# каждая строка будет кортежем (tuple), и её элементы можно выбирать по индексу
id = row[0]
name = row[1]
print(id, name)
replacements = { 10: "лошадь", 20: "куница", 30: "рыба", 40: "заяц" }
def print_with_replacement(*args, **kwargs):
real_args = [replacements.get(arg, arg) for arg in args]
print(*real_args, **kwargs)
print_with_replacement('Мне', 10, 'лет.') # Мне лошадь лет.