GLUZBH3, если учил любой си-подобный язык, то отступ - это эквивалент фигурных скобок. Т.е. начало блока.
Упрощая можно сказать, что отступ ставится, если предыдущая строка заканчивается двоеточием, т.е.
if x == 0:
pass
for x in values:
pass
while x > 0:
pass
def some_func(x):
pass
Был когда-то такой антиотладочный трюк в x86, когда инструкция перезаписывала следующую прямо за ней. При реальном исполнении следующая инструкция была бы уже в кэше, и перезапись не дала бы эффекта. А вот при отладке по шагам кэш был бы забит командами отладчика, и выполнилась бы уже перезаписанная инструкция.
Может, потому и приходится эмулировать архитектуру как можно полнее - мало ли сколько таких фокусов ещё...
Agzamikail, в C++ есть std::list, но он вполне может меняться в runtime.
Разберись уже с терминологией, потому что Питоновский list может брать на себя роли как C-style array, так и std::vector, так и std::list.
Опять же, в плюсах ключевое слово static имеет отдельное значение, которое не имеет ничего общего с коллекциями объектов.
А лучше скажи, какие свойства коллекции тебе нужны и для чего, потому что в Питоне вообще нет понятия статического объекта. Есть понятие мутабельности/иммутабельности.
MisCam, ну вот это странно. На выходе ты должен получить простой вектор из двух элементов.
Если подаёшь на вход сразу всю выборку, то тогда будет матрица Nx2.
У тебя как выглядят веса для этого вектора?
Проблему угадать надо, или всё-таки опишешь?
Какие симптомы проблемы?
Какие сообщения об ошибках?
Как производится доступ к БД?
Телепаты в отпуске, знаешь ли.
Кирилл, читай документацию на ту библиотеку, на которой пишешь бота. Ищи раздел про finite state machine. У тебя классический сценарий из двух шагов (состояний):
1. Ожидание сообщения с текстом
2. Сообщение с текстом получено.
Соответственно, нужно реагировать на входящее сообщение по-разному, в зависимости от того, на каком шаге находится данный пользователь. А значит, нужно для каждого пользователя хранить информацию о том, на каком шаге он находится (+ сведения, ассоциированные с этим шагом).
ierarhsed, странное решение, но да, имена столбцов в принципе допустимо подставлять через форматирование, так как их всё равно определяешь ты сам. А плейсхолдеры подходят для данных.
ierarhsed, это работает вообще с любым типом запроса. Проблема в твоём коде.
Единственное ограничение - так можно подставлять только данные, но не имена столбцов/таблиц.
В приведённом примере я вообще не вижу, почему ты не можешь указать имя столбца пряом в запросе, у тебя один фиг это всегда 'text'.
retUrn3d, ну строго говоря, где входные данные формируем мы сами. Но даже в этом случае у нас будут проблемы, как только придётся вставлять строки. Собственно, на это автор и напоролся. Он вставляет строку без кавычек, поэтому sqlite интерпретирует её как имя столбца. А если бы вставлял строку с кавычками, был бы облом со строкой, содержащей кавычку. И так далее.
Вот поэтому не надо использовать форматирование строк для формирования запросов. Есть только два сценария, когда это допустимо:
1. Динамические имена таблиц/столбцов
2. Динамическое формирование блока WHERE. Причем в этом случае тоже нужно формировать WHERE с плейсхолдерами, а не сразу со значениями.
Emince, есть классический способ поменять местами значения двух переменных (для примера a и b), пригоден для большинства языков. Мог бы и додуматься, если честно.
temp = a
a = b
b = temp
В питоне есть еще вот такая идиома: a, b = b, a # тоже поменяет значения местами
В твоём случае ты оперируешь не переменными a и b, а элементами массива point_list[i_min] и point_list[i_max]. Дальше сам.
F3ANG, значит, надо избавляться от текстового файла при первой возможности. Потому что возможностей для его обновления ровно две: переписать файл целиком или переносить "нетронутый" участок вперёд/назад по файлу.
Упрощая можно сказать, что отступ ставится, если предыдущая строка заканчивается двоеточием, т.е.
ну и так далее, подробности ищи в учебнике.