Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять, является ли переменная кортежем (tuple) в Python. Лабораторная работа начинается с введения в концепцию кортежей как неизменяемых структур данных, аналогичных спискам, и демонстрирует их создание, доступ к элементам и ограничение на неизменяемость с помощью практических примеров из файла tuple_example.py.
Затем в рамках лабораторной работы вас научат использовать функцию type() и функцию isinstance() для определения, является ли переменная кортежем. Вы создадите и запустите скрипты на Python, чтобы увидеть вывод этих функций при применении к кортежам и другим типам данных, что укрепит ваше понимание того, как программно определить, содержит ли переменная кортеж.
Понимание кортежей (Tuples)
На этом этапе вы узнаете о кортежах (tuples) в Python. Кортежи - это фундаментальная структура данных, похожая на списки, но с важной разницей: они неизменяемы. Это означает, что после создания кортежа его элементы нельзя изменить. Эта неизменяемость делает кортежи полезными для представления фиксированных наборов элементов.
Начнем с создания простого кортежа:
my_tuple = (1, 2, 3)
print(my_tuple)
Создайте файл с именем tuple_example.py в директории ~/project с помощью редактора VS Code. Скопируйте и вставьте приведенный выше код в файл.
Теперь запустите скрипт, используя следующую команду в терминале:
python tuple_example.py
Вы должны увидеть следующий вывод:
(1, 2, 3)
Кортежи определяются с использованием круглых скобок () и элементы разделяются запятыми.
Теперь попробуем получить доступ к элементам кортежа:
my_tuple = (1, 2, 3)
print(my_tuple[0])
print(my_tuple[1])
print(my_tuple[2])
Добавьте эти строки в файл tuple_example.py и запустите его снова:
python tuple_example.py
Вы должны увидеть следующий вывод:
(1, 2, 3)
1
2
3
Вы можете получить доступ к элементам кортежа по их индексу, как и в списках. Помните, что индексация начинается с 0.
Теперь попробуем изменить кортеж:
my_tuple = (1, 2, 3)
my_tuple[0] = 4 ## This will cause an error
Добавьте эту строку в файл tuple_example.py. При запуске скрипта вы столкнетесь с ошибкой TypeError:
python tuple_example.py
Traceback (most recent call last):
File "/home/labex/project/tuple_example.py", line 2, in <module>
my_tuple[0] = 4
TypeError: 'tuple' object does not support item assignment
Это сообщение об ошибке подтверждает, что кортежи неизменяемы. Вы не можете изменить их элементы после создания.
Кортежи также могут содержать разные типы данных:
my_tuple = (1, "hello", 3.14)
print(my_tuple)
Измените файл tuple_example.py, чтобы он включал этот код, и запустите его:
python tuple_example.py
Вы должны увидеть следующий вывод:
(1, 'hello', 3.14)
Кортежи - это универсальная структура данных в Python, часто используемая, когда вам нужно обеспечить неизменность данных в рамках программы.
Использование функции type() для определения
На этом этапе вы узнаете, как использовать функцию type() в Python для определения типа данных переменной. Это полезный инструмент для понимания того, с какими данными вы работаете, особенно когда вы имеете дело с разными структурами данных, такими как кортежи (tuples), списки (lists) и другие.
Начнем с использования функции type() для определения типа кортежа:
my_tuple = (1, 2, 3)
print(type(my_tuple))
Добавьте эти строки в файл tuple_example.py (вы можете заменить существующее содержимое или добавить к нему).
Теперь запустите скрипт, используя следующую команду в терминале:
python tuple_example.py
Вы должны увидеть следующий вывод:
<class 'tuple'>
Вывод <class 'tuple'> показывает, что переменная my_tuple действительно является кортежем.
Теперь попробуем использовать функцию type() с другими типами данных:
my_list = [1, 2, 3]
my_string = "hello"
my_integer = 10
my_float = 3.14
print(type(my_list))
print(type(my_string))
print(type(my_integer))
print(type(my_float))
Добавьте эти строки в файл tuple_example.py и запустите его снова:
python tuple_example.py
Вы должны увидеть следующий вывод:
<class 'tuple'>
<class 'list'>
<class 'str'>
<class 'int'>
<class 'float'>
Как вы можете видеть, функция type() правильно определяет тип данных каждой переменной. Это может быть очень полезно, когда вы работаете с сложными структурами данных или когда вам нужно убедиться, что переменная имеет определенный тип перед выполнением операции.
Функция type() - это простой, но мощный инструмент для понимания типов данных в вашем Python-коде.
Подтверждение с использованием isinstance()
На этом этапе вы узнаете, как использовать функцию isinstance() в Python для проверки, является ли переменная определенного типа. Эта функция особенно полезна для валидации типов данных и обеспечения корректной работы вашего кода.
Начнем с использования функции isinstance() для проверки, является ли переменная кортежем (tuple):
my_tuple = (1, 2, 3)
print(isinstance(my_tuple, tuple))
Добавьте эти строки в файл tuple_example.py (вы можете заменить существующее содержимое или добавить к нему).
Теперь запустите скрипт, используя следующую команду в терминале:
python tuple_example.py
Вы должны увидеть следующий вывод:
True
Вывод True показывает, что переменная my_tuple действительно является кортежем.
Теперь попробуем использовать функцию isinstance() с другими типами данных и посмотрим, что произойдет, если переменная не является указанного типа:
my_list = [1, 2, 3]
my_string = "hello"
my_integer = 10
my_float = 3.14
print(isinstance(my_list, tuple))
print(isinstance(my_string, str))
print(isinstance(my_integer, int))
print(isinstance(my_float, float))
Добавьте эти строки в файл tuple_example.py и запустите его снова:
python tuple_example.py
Вы должны увидеть следующий вывод:
True
False
True
True
True
Как вы можете видеть, функция isinstance() возвращает True, если переменная является указанного типа, и False в противном случае. Это более надежный способ проверки типов данных по сравнению с функцией type(), так как он также учитывает наследование.
Например, если у вас есть пользовательский класс, который наследуется от tuple, функция isinstance() вернет True при проверке, является ли экземпляр этого класса кортежем, в то время как функция type() вернет тип пользовательского класса.
Функция isinstance() - это ценный инструмент для валидации типов данных и обеспечения корректности вашего Python-кода.
Резюме
В этом практическом занятии (lab) вы узнали о кортежах (tuples) в Python - структуре данных, похожей на списки (lists), но неизменяемой. Вы создали файл tuple_example.py и экспериментировали с кортежами, заметив, что они определяются с использованием круглых скобок, элементы к ним можно обращаться по индексу (начиная с 0), и попытка изменить кортеж вызывает ошибку TypeError из - за его неизменяемости.
Вы также увидели, что кортежи могут содержать элементы разных типов данных. Затем в практическом занятии были представлены два метода для проверки, является ли переменная кортежем: использование функции type() для прямой проверки типа и использование функции isinstance() для более гибкой проверки, которая особенно полезна при учете наследования.



