сделать WHILE, пока со строкой - PullRequest
0 голосов
/ 22 марта 2020

Как я могу сделать буквально 1000 'или' условия im my while, для обработки изображений.

Цель здесь состоит в том, чтобы сделать это:

while (img0[i,j] != NOIR0).all() or (img0[i,j] != NOIR1) or (img0[i,j] != NOIR2) ... :

, и это переходит к NOIR999, где NOIRx - это разные константы.
Я подумал кодировать for, который выполняет строка, но я пока не могу поставить это как условие.

Может кто-нибудь помочь мне, пожалуйста? :)

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Что вам нужно, так это встроенная функция any().

Эта функция получает итератор и возвращает True, если любой элементов оценивается как True, в противном случае он возвращает False.

Хорошая вещь с этим - короткое замыкание - всякий раз, когда встречается значение True, функция не будет продолжать итерацию.

while any((img0[i, j] != f"NOIR{n}").all() for n in range(1000)):
0 голосов
/ 22 марта 2020

для n вы можете сделать это:

while n<=999:
    print(n)
    n = n+1

Это самая базовая c схема на время l oop. Некоторое время l oop продолжается до тех пор, пока не будет выполнено условие.

Если вы хотите a для l oop:

for n in range(0, 1000):
    print(n)


...