Функции all() и any()

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

В этом модуле мы изучим две мощные встроенные функции Python: all() и any(). Эти функции позволяют элегантно проверять условия для целых коллекций данных, избегая громоздких циклов.

Функция all() проверяет, являются ли все элементы в итерируемом объекте истинными (Truthy).
Функция any() проверяет, есть ли хотя бы один истинный элемент.

Мы разберем, как эти функции работают с различными типами данных, что такое "истинность" в Python (Truthy/Falsy значения), и как они ведут себя с пустыми списками. Задания расположены от простых определений до написания сложной логики проверок.

Список тем

Принцип работы all() и any()

id: 40051_task_13_1

Сопоставьте название встроенной функции с логикой её работы. Вспомните, какое условие должна выполнить коллекция, чтобы функция вернула True.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Возвращает True, если ВСЕ элементы коллекции истинны (или коллекция пуста)
Возвращает True, если ХОТЯ БЫ ОДИН элемент коллекции истинен
Возвращает количество элементов в коллекции (для справки)
all()
any()
len()
Сообщения
Проверить
Показать подсказку

Проверка всех условий

id: 40051_task_13_2

Дан список результатов тестов. Нам нужно убедиться, что все тесты пройдены успешно (имеют значение True). Допишите имя необходимой функции.

Заполните пропуски
test_results = [True, True, True, True]
is_success = input1S(test_results)
print(is_success)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Поиск истины среди лжи

id: 40051_task_13_3

Проанализируйте список `flags`. В нем содержатся различные значения. Что выведет функция `any(flags)`? Вспомните, какие значения в Python считаются ложными (Falsy).

Выберите правильный вариант ответа
flags = [0, False, None, "", 1]
print(any(flags))
Сообщения
Проверить
Показать подсказку

Что скажет all()?

id: 40051_task_13_4

Распределите списки по категориям в зависимости от того, что вернет функция `all()` при передаче ей этого списка.

Перетяните элементы в соответствующие блоки
Вернет True
Вернет False
[1, 2, 3, 4]
[True, True, False]
['hello', 'world']
[1, 0, 1]
[True, 'Python', 10]
[None, True]
Сообщения
Проверить
Показать подсказку

Ошибка аргумента

id: 40051_task_13_5

Пользователь хотел проверить несколько условий, но получил ошибку `TypeError: all() takes exactly one argument`. Найдите и исправьте ошибку в вызове функции.

Найдите ошибку и исправьте
x = 10
y = 20
if all(x > 0, y > 0):
    print("Coordinates are positive")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Строгая проверка all()

id: 40051_task_13_6

Что выведет следующий код? Обратите внимание на типы данных в списке. Введите `True` или `False`.

Что должно получиться?
data = ["apple", "banana", "", "cherry"]
print(all(data))
Сообщения
Проверить
Показать подсказку

Парадокс пустого списка

id: 40051_task_13_7

Это классический вопрос на собеседованиях. Что вернет функция `all()`, если передать ей пустой список? Подумайте логически: можно ли найти в пустом списке элемент, который является ложью?

Выберите правильный вариант ответа
items = []
print(all(items))
Сообщения
Проверить
Показать подсказку

Валидация формы регистрации

id: 40051_task_13_8

Заполните пропуски, чтобы проверить форму. У нас есть список обязательных полей. Переменная `is_valid` должна быть True, только если все поля заполнены (не являются пустыми строками).

Нужно правильно расставить в пропуски предложенные варианты
username = "User1"
email = "" # Пустое поле
password = "123"

fields = [username, email, password]

if input1S(input2S):
    print("Form is valid")
else:
    print("Fill all fields")
all
any
fields
[fields]
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Есть ли должники?

id: 40051_task_13_9

Соберите функцию `has_debt`, которая принимает список балансов и возвращает True, если в списке есть хотя бы одно отрицательное число. Используйте генераторное выражение внутри функции any.

Перетяните в правильном порядке строки из одного блока в другой
def has_debt(balances):
    return any(b < 0 for b in balances)
    return all(b < 0 for b in balances)
print(has_debt([100, -50, 200]))
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Проверка на простоту строки

id: 40051_task_13_10

У нас есть строка `code`. Нужно проверить, состоит ли она только из цифр. Используйте `all()` в сочетании с генераторным выражением и методом строки `.isdigit()`.

Заполните пропуски
code = "12345"
# Проверяем каждый символ в строке
is_numeric = input1S(char.input2S() for char in code)
print(is_numeric)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру