Элементы массива Python в операторе if - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть некоторый массив с целыми числами и для цикла. Я пытаюсь проверить, является ли некоторые конкретные элементы в массиве больше или меньше, чем некоторые целые числа. Этот код объясняет это лучше:

array = [1,2,3,4,5]
for i in range(5):
    if array[i] >= 3:
        print(sometext)
    else:
        print(othertext)

Но я получил ValueError: Истинное значение массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all ()

РЕШЕНИЕ: Я правильно сделал отступ. Это выше просто упрощение (какой-то глупый пример) моего кода. Я нашел, где ошибка. Это потому, что я инициализировал массив с numpy как

a = numpy.empty(5) и не так:

a = [0 for i in range(5)]

Спасибо всем за помощь

Ответы [ 4 ]

0 голосов
/ 24 апреля 2018

Ошибка, которую вы получаете, в основном из-за INDENTATION. Python строго следует отступам, что означает, что он будет выполнять только коды, написанные в этом конкретном блоке. См. Правило отступа Python для более подробной информации. Благодарю вас. Счастливого кодирования впереди.

0 голосов
/ 24 апреля 2018

Это на самом деле не самый питонский способ делать то, что вы описываете.

array = [1,2,3,4,5]
for element in array:
    if element >= 3:
        print("Yes")
    else:
        print("No")

Ссылка: https://wiki.python.org/moin/ForLoop

0 голосов
/ 24 апреля 2018

Это сработало для меня с правильными намерениями:

>>> array = [1,2,3,4,5]
>>> for i in range(5):
...     if array[i] >= 3:
...             print("Yes")
...     else:
...             print("No")
...
0 голосов
/ 24 апреля 2018

Вы должны перебрать сам массив:

array = [1, 2, 3, 4, 5]

for item in array:
    if item >= 3:
        print("yes")
    else:
        print("no")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...