Как не выполнить оператор else цикла for, если оператор выполняется хотя бы один раз? - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь проверить все элементы в списке, чтобы увидеть, соответствуют ли они условию "меньше 5".Я пытаюсь сделать так: если в моем списке нет цифр меньше 5, я хочу напечатать утверждение «В этом списке нет элементов меньше 5.», иначе выведите только те цифры, которые есть, а не «.В этом списке нет элементов меньше 5 ".также.

list = [100, 2, 1, 3000]
for x in list:
    if int(x) < 5:
        print(x)
else:
    print("There are no elements in this list less than 5.")

Это приводит к выводу:

2
1
There are no elements in this list less than 5.

Как мне избавиться от последней строки этого вывода?

Ответы [ 4 ]

0 голосов
/ 24 мая 2018

Вам нужен какой-то флаг, чтобы отслеживать, было ли выполнено условие, как в коде ниже. list = [100, 2, 1, 3000] flag = False for x in list: if int(x) < 5: print(x) flag = True if not flag: print("There are no elements in this list greater than 5.")

0 голосов
/ 24 мая 2018

Держите логический флаг вне цикла.Установите значение true, если хотя бы один элемент найден.Если флаг не меняется, выведите ваше заявление о том, что не найдено элементов больше 5:

list = [100, 2, 1, 3000]
found = False
for x in list:
  if int(x) < 5:
    print(x)
    found = True

if found == False:
  print("There are no elements in this list greater than 5")     
0 голосов
/ 24 мая 2018

else из for-loop будет пропущено, только если встречено break.Таким образом, оператор for-else не подходит для поиска нескольких элементов в списке.

Вместо этого используйте понимание списка и печатайте соответственно на основе результата.

lst = [100, 2, 1, 3000]

less_than_five = [x for x in lst if x <  5]

if less_than_five:
    print(*less_than_five)
else:
    print('There are no elements in this list greater than 5.')
0 голосов
/ 24 мая 2018

Вы могли бы сделать что-то вроде:

if max(mylist) < 5:
    print('there are no elements in this list greater than 5')
else:
    for x in mylist:
        if int(x) < 5:
            print(x)

Это проверяет, содержит ли ваш список что-либо больше 5, прежде чем что-либо, и если есть, то он запускает ваш цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...