Как вызвать функцию на основе двух функций? Имеется функций несколько. В первой формируется первый массив, во второй -- второй массив. В третьей эти массивы перемножаются, получается новый третий массив. И как только, в четвертой функции, я хочу построить график зависимости первого массива от третьего, начинаются проблемы.
Код схематично вот такой:def getarray1():
#Получаю первый массив
return array1

def getarray2():
#Получаю второй массив
return array2

def getarray3(array1, array2):
#Перемножаю элементы первого и второго массивов,
#получаю третий массив.
return array3

def buildgraph(array1, array3):
plt.plot(array1, array3)

plt.xlabel('x')
plt.ylabel('y')
plt.title('Title name')
plt.savefig("test.png")
plt.show()

getarray3(getarray1(), getarray2())
buildgraph(getarray1(), getarray3())
В итоге getarray1 вызывается два раза, а потом выбивается ошибка о том, что getarray3 требует параметры array1 и array2. В общем-то говоря: что неверно?

21 Авг 2019 в 07:05
232 +1
0
Ответы
1

Проблема заключается в том, что при вызове функции getarray3(getarray1(), getarray2()) вы не сохраняете результат возвращаемого значения в переменную, поэтому при вызове функции buildgraph(getarray1(), getarray3()) результат вызова getarray1() пересчитывается заново, что вызывает ошибку, так как функция getarray3() требует два параметра.

Чтобы исправить это, можно сохранить результат вызовов функций getarray1() и getarray2() в переменные, а затем передавать их параметрами в функции getarray3() и buildgraph(). Примерно так:

array1 = getarray1()
array2 = getarray2()
array3 = getarray3(array1, array2)
buildgraph(array1, array3)

Таким образом, результаты выполнения функций будут сохранены в переменных и будут использованы в последующих вызовах функций без дополнительного пересчета.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир