#python #python-3.x #if-statement
#python #python-3.x #if-statement
Вопрос:
Я работаю над скриптом, который передает данные в реальном времени и добавляет их в массивы numpy. Если массив имеет определенную длину, я буду использовать его в качестве триггера для выполнения другого действия. Однако я заметил, что иногда они отменяют одно и другое. Чтобы привести пример:
if len(closeBidArray) > 20:
execution_logic()
if len(closeBidArray) > 1:
# spreadsheet_append
data = "%s" % (closeBidArray[-1])
ayTools.spreadsheet_append(fileName, data)
closeBidArray = np.append(closeBidArray, bidPrice)
Учитывая приведенный выше пример, пока closeBidArray меньше 20, он не запускает логику выполнения, но выполняет spreadsheet_append и добавляет к массиву numpy (как показано в последней строке выше). Однако, если длина closeBidArray больше 20, то, когда он отказывается выполнять spreadsheet_append , он не будет добавляться к массиву numpy, несмотря на то, что обе эти задачи должны выполняться после. Есть идеи о том, где я сбиваюсь с пути? Спасибо
Комментарии:
1. почему бы spreadsheet_append не запускаться, когда длина closeBidArray больше 20?
2. Я предполагаю, что у вас происходит что-то странное в execution_logic(), и ваша программа завершается перед оценкой вашего второго оператора if.
3. @BobHaffner, execution_logic() в основном выполняет некоторую математику, чтобы увидеть, соответствует ли среднее значение. меньше, чем какое-либо другое число, а затем печатается. Ничего слишком вредного.
4. Вы выполнили шаг через код с помощью отладчика, чтобы проверить, выполняется ли оценка 2-го if?
5. @BobHaffner, извините за поздний ответ (скрипт использует данные в реальном времени), но вы были правы, это была проблема с execution_logic() , по-видимому, был параметр, к которому он не мог получить доступ изнутри класса.