Введение
В этом лабораторном занятии (LabEx) вы научитесь проверять, содержит ли кортеж (tuple) только числа (целые и вещественные) на Python. Вы начнете с определения числовых кортежей, изучив, как создавать кортежи, содержащие целые числа, вещественные числа или их смесь. Это включает создание файла numeric_tuple.py, добавление определений кортежей и запуск скрипта для наблюдения за выводом.
Затем в рамках лабораторного занятия (LabEx) вы научитесь использовать функцию all() в сочетании с функцией isinstance() для проверки того, что все элементы в кортеже действительно являются числами. Наконец, вы узнаете, как корректно обрабатывать пустые кортежи при выполнении этой проверки.
Определение числовых кортежей
На этом этапе вы научитесь определять кортежи (tuples), содержащие только числовые данные (целые и вещественные числа) на Python. Кортежи - это фундаментальная структура данных в Python, похожая на списки (lists), но с одной важной разницей: они неизменяемы (immutable), то есть их элементы не могут быть изменены после создания. Эта неизменяемость делает их полезными для представления фиксированных наборов данных.
Начнем с создания простого кортежа, содержащего целые числа:
Откройте редактор VS Code.
Создайте новый файл с именем
numeric_tuple.pyв директории~/project.## ~/project/numeric_tuple.py my_tuple = (1, 2, 3, 4, 5) print(my_tuple)Сохраните файл.
Откройте терминал.
Запустите скрипт с помощью команды
python:python ~/project/numeric_tuple.pyВы должны увидеть следующий вывод:
(1, 2, 3, 4, 5)
Теперь создадим кортеж, содержащий вещественные числа:
Измените файл
numeric_tuple.py, добавив в него вещественные значения:## ~/project/numeric_tuple.py my_tuple = (1.0, 2.5, 3.7, 4.2, 5.9) print(my_tuple)Сохраните файл.
Запустите скрипт снова:
python ~/project/numeric_tuple.pyВы должны увидеть следующий вывод:
(1.0, 2.5, 3.7, 4.2, 5.9)
Кортежи также могут содержать смесь целых и вещественных чисел:
Измените файл
numeric_tuple.py, добавив в него и целые, и вещественные значения:## ~/project/numeric_tuple.py my_tuple = (1, 2.5, 3, 4.2, 5) print(my_tuple)Сохраните файл.
Запустите скрипт:
python ~/project/numeric_tuple.pyВы должны увидеть следующий вывод:
(1, 2.5, 3, 4.2, 5)
В целом, вы можете определить кортежи, содержащие числовые данные, заключая числа (целые и вещественные) в круглые скобки () и разделяя их запятыми.
Использование all() с isinstance()
На этом этапе вы научитесь использовать функцию all() в сочетании с функцией isinstance() для проверки того, являются ли все элементы в кортеже (tuple) числами. Это полезный метод для валидации данных и обеспечения того, что ваш код работает с правильными типами значений.
Сначала разберемся, что делают функции all() и isinstance():
all(iterable): Эта функция возвращаетTrue, если все элементы итерируемого объекта (например, кортежа) являются истинными (или если итерируемый объект пуст). Она возвращаетFalse, если хотя бы один элемент является ложным.isinstance(object, classinfo): Эта функция возвращаетTrue, еслиobjectявляется экземпляромclassinfo(например,int,float). В противном случае она возвращаетFalse.
Теперь создадим скрипт на Python для проверки, являются ли все элементы в кортеже целыми числами или вещественными:
Откройте редактор VS Code.
Создайте новый файл с именем
check_numeric_tuple.pyв директории~/project.## ~/project/check_numeric_tuple.py def is_numeric_tuple(my_tuple): return all(isinstance(item, (int, float)) for item in my_tuple) tuple1 = (1, 2.5, 3, 4.2, 5) tuple2 = (1, 2, 'a', 4, 5) tuple3 = (1.0, 2.0, 3.0) print(f"Tuple 1 is numeric: {is_numeric_tuple(tuple1)}") print(f"Tuple 2 is numeric: {is_numeric_tuple(tuple2)}") print(f"Tuple 3 is numeric: {is_numeric_tuple(tuple3)}")В этом скрипте:
- Мы определяем функцию
is_numeric_tuple, которая принимает кортеж в качестве входного параметра. - Внутри функции мы используем функцию
all()с генераторным выражением(isinstance(item, (int, float)) for item in my_tuple)для проверки, является ли каждыйitemв кортеже экземпляром либоint, либоfloat. - Затем мы тестируем функцию на трех разных кортежах.
- Мы определяем функцию
Сохраните файл.
Откройте терминал.
Запустите скрипт с помощью команды
python:python ~/project/check_numeric_tuple.pyВы должны увидеть следующий вывод:
Tuple 1 is numeric: True Tuple 2 is numeric: False Tuple 3 is numeric: TrueЭтот вывод показывает, что
tuple1иtuple3содержат только числовые значения, в то время какtuple2содержит строку, поэтому он не считается числовым кортежем.
В этом примере показано, как эффективно использовать функции all() и isinstance() для валидации содержимого кортежа и обеспечения того, что все элементы соответствуют определенному типу данных.
Обработка пустых кортежей
На этом этапе вы научитесь обрабатывать пустые кортежи (tuples) при проверке на числовые значения. Пустой кортеж - это кортеж без элементов, представленный как (). Важно учитывать пустые кортежи в своем коде, чтобы избежать потенциальных ошибок и обеспечить ожидаемое поведение программы.
Давайте модифицируем скрипт из предыдущего шага для обработки пустых кортежей:
Откройте редактор VS Code.
Откройте файл
check_numeric_tuple.pyв директории~/project.## ~/project/check_numeric_tuple.py def is_numeric_tuple(my_tuple): if not my_tuple: return True ## An empty tuple is considered numeric return all(isinstance(item, (int, float)) for item in my_tuple) tuple1 = (1, 2.5, 3, 4.2, 5) tuple2 = (1, 2, 'a', 4, 5) tuple3 = (1.0, 2.0, 3.0) tuple4 = () ## Empty tuple print(f"Tuple 1 is numeric: {is_numeric_tuple(tuple1)}") print(f"Tuple 2 is numeric: {is_numeric_tuple(tuple2)}") print(f"Tuple 3 is numeric: {is_numeric_tuple(tuple3)}") print(f"Tuple 4 is numeric: {is_numeric_tuple(tuple4)}")В этом модифицированном скрипте:
- Мы добавили проверку в начале функции
is_numeric_tuple:if not my_tuple: return True. Эта проверка определяет, является ли кортеж пустым. Если он пуст, функция возвращаетTrue, считая пустой кортеж числовым. - Мы добавили пустой кортеж
tuple4 = ()для тестирования функции.
- Мы добавили проверку в начале функции
Сохраните файл.
Откройте терминал.
Запустите скрипт с помощью команды
python:python ~/project/check_numeric_tuple.pyВы должны увидеть следующий вывод:
Tuple 1 is numeric: True Tuple 2 is numeric: False Tuple 3 is numeric: True Tuple 4 is numeric: TrueЭтот вывод показывает, что пустой кортеж
tuple4теперь корректно обрабатывается и считается числовым кортежем.
Обработка пустых кортежей - это хорошая практика, которая делает ваш код более надежным и предотвращает неожиданное поведение. В этом случае мы решили считать пустой кортеж числовым, но вы можете изменить логику в соответствии с вашими конкретными требованиями.
Резюме
В этом практическом занятии (lab) первый шаг посвящен определению числовых кортежей (tuples) в Python. Вы узнали, что кортежи - это неизменяемые структуры данных, похожие на списки, и они определяются с использованием круглых скобок (). Вы можете создавать кортежи, содержащие целые числа, вещественные числа или их смесь, разделяя элементы запятыми.
Затем в практическом занятии показано, как проверить, содержит ли кортеж только числа, используя функцию all() в сочетании с функцией isinstance(). (Содержание в оригинальном описании практического занятия обрезано.)



