Не могу добавить массив Python внутри оператора if - PullRequest
0 голосов
/ 28 января 2019

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

ans = np.array([[0,0]])
def q6(n):
    for a in range(n):
        for b in range(n):
            if ((a**2+b**2)/(a*b+1))%2 == 0:             
                np.append(ans,[[a,b]], axis=0)     
    return ans
print(q6(10))

Спасибо

1 Ответ

0 голосов
/ 28 января 2019

Это связано с тем, как работает numpy.append () .Цитируя из документации, метод возвращает копию arr со значениями, добавленными к оси.Обратите внимание, что добавление не происходит на месте: новый массив выделяется и заполняется.

Поскольку метод возвращает ans, и каждый вызов np.append() возвращает новый массив вместо измененияans сама переменная, вы получите исходное значение [[0,0]].

...