for i in range(10):
....
if n1 % 10 == i:
(насчет подстановки данных с помощью "?") я не заметил в моём случае разницы между подстановкой данных и более мне привычными f-строками.
Насчет primary key я почитал в документации, я понял его "задачу" - каждая строка имеет свой уникальный идентификатор, но не до конца понял "а почему я так не могу?". После добавления primary key в таблицу добавляется просто еще одно правило которое (возможно) никак не сказывается на, например, поиске строки с указанным id: как было WHERE id = 1 так и осталось.
cursor.execute("INSERT INTO table1(id, embed) VALUES (?, ?)", (1, supertext))
cursor.execute("INSERT INTO table1(embed) VALUES (?)", (supertext, ))
cursor.execute(f"INSERT INTO table1 VALUES (1, '{supertext}')")
cursor.execute("INSERT INTO table1 VALUES (?, ?)", (1, supertext))
int primary key
@bot.on.message(text=["Призми погладить", "Рп погладить", "[id{user_id}|Фурина]"])
async def pat_user(message: Message):
# Проверяем, было ли упоминание пользователя через @
mentioned_user_id = None
mentioned_users = re.findall(r'\[id(\d+)\|.*?\]', message.text)
if mentioned_users:
mentioned_user_id = mentioned_users[0]
@bot.on.message(text=["Рп погладить [id<mentioned_user_id>|<mentioned_user_name>]", "Призми погладить", "Рп погладить"])
async def pat_user(message: Message, mentioned_user_id=None, mentioned_user_name=None):
mentioned_user_id ... # уже можно использовать напрямую
# можно и само имя использовать, если вдруг пригодится mentioned_user_name
mentioned_users = re.findall(r'\|@(.+?)\b', message.text)
if mentioned_users:
mentioned_user_id = mentioned_users[0]
ws.cell(row=..., column=...).value = ...
Т.е. тоже перебор по индексам heading и затем в row=1 менять только column на соответствующее значение и записывать value.