В этом модуле мы изучим две мощные встроенные функции Python: all() и any(). Эти функции позволяют элегантно проверять условия для целых коллекций данных, избегая громоздких циклов.
Функция all() проверяет, являются ли все элементы в итерируемом объекте истинными (Truthy).
Функция any() проверяет, есть ли хотя бы один истинный элемент.
Мы разберем, как эти функции работают с различными типами данных, что такое "истинность" в Python (Truthy/Falsy значения), и как они ведут себя с пустыми списками. Задания расположены от простых определений до написания сложной логики проверок.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Функции map() и filter().
- Функция reduce().
- Функция sorted().
- Функции all() и any().
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Принцип работы all() и any()
Сопоставьте название встроенной функции с логикой её работы. Вспомните, какое условие должна выполнить коллекция, чтобы функция вернула True.
all()any()len()Проверка всех условий
Дан список результатов тестов. Нам нужно убедиться, что все тесты пройдены успешно (имеют значение True). Допишите имя необходимой функции.
test_results = [True, True, True, True]
is_success = input1S(test_results)
print(is_success)Поиск истины среди лжи
Проанализируйте список `flags`. В нем содержатся различные значения. Что выведет функция `any(flags)`? Вспомните, какие значения в Python считаются ложными (Falsy).
flags = [0, False, None, "", 1]
print(any(flags))Что скажет all()?
Распределите списки по категориям в зависимости от того, что вернет функция `all()` при передаче ей этого списка.
[1, 2, 3, 4][True, True, False]['hello', 'world'][1, 0, 1][True, 'Python', 10][None, True]Ошибка аргумента
Пользователь хотел проверить несколько условий, но получил ошибку `TypeError: all() takes exactly one argument`. Найдите и исправьте ошибку в вызове функции.
x = 10y = 20if all(x > 0, y > 0): print("Coordinates are positive")Строгая проверка all()
Что выведет следующий код? Обратите внимание на типы данных в списке. Введите `True` или `False`.
data = ["apple", "banana", "", "cherry"]
print(all(data))Парадокс пустого списка
Это классический вопрос на собеседованиях. Что вернет функция `all()`, если передать ей пустой список? Подумайте логически: можно ли найти в пустом списке элемент, который является ложью?
items = []
print(all(items))Валидация формы регистрации
Заполните пропуски, чтобы проверить форму. У нас есть список обязательных полей. Переменная `is_valid` должна быть True, только если все поля заполнены (не являются пустыми строками).
username = "User1"
email = "" # Пустое поле
password = "123"
fields = [username, email, password]
if input1S(input2S):
print("Form is valid")
else:
print("Fill all fields")Есть ли должники?
Соберите функцию `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]))Проверка на простоту строки
У нас есть строка `code`. Нужно проверить, состоит ли она только из цифр. Используйте `all()` в сочетании с генераторным выражением и методом строки `.isdigit()`.
code = "12345"
# Проверяем каждый символ в строке
is_numeric = input1S(char.input2S() for char in code)
print(is_numeric)