sanders rocket, приведённый код проверяет, нажата ли левая кнопка мыши.
Автора интересует, приведёт ли нажатие левой кнопки мыши прямо сейчас к какому-то действию.
mayton2019, проверяет, есть ли уже такой пользователь. В зависимости от этого делается INSERT или UPDATE. Но это можно свернуть в один запрос UPSERT, так как других действий тут не выполняется.
MIHUTKA, тогда задавай конкретные вопросы, а не "сделай за меня".
И приводи свои результаты, пусть даже неправильные, или сообщения об ошибках. А то не получаться может очень по-разному.
Для начала исправь косяк с формированием запросов. Я тебе привёл ссылку, там есть примеры, как надо.
Если тебе нужно, чтобы кто-то писал код за тебя - тебе на фриланс.
Здесь могут помочь советом, при этом подразумевается что ты хочешь научиться, чтобы потом сделать сам.
Dimonchik,
1. с какого перепугу должен увеличиваться line, если эта строка читается заново.
2. через getsizeof() ты увеличение потребления памяти не увидишь. До конкатенации a будет указывать на старую строку, а новая еще не будет существовать, а после конкатенации a будет указывать на новую строку, а старая может быть уже собрана сборщиком мусора. Проблема в том, что в процессе конкатенации выделяется дополнительная память.
Достаточно посмотреть на исходники CPython, функция PyUnicode_Concat(). В ней мы видим два интересных момента:
1. определение длины итоговой строки new_len = left_len + right_len;
2. Создание новой строки с этой длиной result = PyUnicode_New(new_len, maxchar);
Начиная с этого момента, в памяти одновременно существуют обе исходные строки и результирующая, и их надо где-то разместить, а это может потребовать свопа части памяти на диск, что ещё дольше.
И проблема с конкатенацией в цикле в том, что это выделение и освобождение памяти в куче будет повторяться циклически, а это не совсем дешевая операция. А так как в питоне строки неизменяемы, то и в других интерпретаторах эта операция будет реализована схожим образом, я полагаю.
bybacapitan, ты написал pass, т.е. "не делай ничего". Вот бот ничего и не делает, если эта ошибка происходит. Определись, какой реакции ты ждешь, и прописывай эту реакцию в ветвь except.
Абсолютно неверно. При конкатенации строк питон будет создавать новую строку и выделять память под неё.
Так что чтобы добавить последнюю строчку к гигабайтному файлу, придётся выделить 2ГБ памяти.
Ну проблема уже в этом. Кроме шуток. Боты - это НЕ просто, не нужно с них начинать.
Проблема в проектировании системы, или в написании кода?