Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять, содержит ли кортеж (tuple) только строки на языке Python. Практическое занятие начинается с введения в строковые кортежи, которые представляют собой упорядоченные и неизменяемые последовательности строковых элементов, аналогичные спискам, но определяемые с использованием круглых скобок. Вы узнаете, как создавать строковые кортежи, обращаться к их элементам с помощью индексации и определять их длину с помощью функции len().
В практическом занятии также подчеркивается неизменяемость кортежей, показывая, что попытка изменить кортеж после его создания приведет к ошибке. Вы будете использовать VS Code в среде LabEx для создания и запуска скриптов на Python, чтобы исследовать эти концепции и операции, связанные со строковыми кортежами.
Изучите строковые кортежи
На этом этапе вы узнаете о строковых кортежах (string tuples) в Python. Кортеж (tuple) представляет собой упорядоченную, неизменяемую (immutable) последовательность элементов. Кортежи похожи на списки, но они определяются с использованием круглых скобок (), а не квадратных скобок []. Строковые кортежи - это кортежи, в которых каждый элемент является строкой. Понимание кортежей является важным аспектом при работе с наборами данных в Python.
Начнем с создания простого строкового кортежа. Откройте редактор VS Code в среде LabEx. Создайте новый файл с именем string_tuple.py в директории ~/project.
## Create a string tuple
my_tuple = ("apple", "banana", "cherry")
## Print the tuple
print(my_tuple)
Сохраните файл и запустите скрипт с помощью следующей команды в терминале:
python ~/project/string_tuple.py
Вы должны увидеть следующий вывод:
('apple', 'banana', 'cherry')
Теперь давайте рассмотрим некоторые общие операции с строковыми кортежами:
- Обращение к элементам: Вы можете обращаться к элементам кортежа с помощью индексации, как и в списках.
my_tuple = ("apple", "banana", "cherry")
## Access the first element
first_element = my_tuple[0]
print(first_element)
## Access the second element
second_element = my_tuple[1]
print(second_element)
Сохраните изменения в файле string_tuple.py и запустите скрипт снова:
python ~/project/string_tuple.py
Вывод должен быть следующим:
apple
banana
- Длина кортежа: Вы можете определить количество элементов в кортеже с помощью функции
len().
my_tuple = ("apple", "banana", "cherry")
## Get the length of the tuple
tuple_length = len(my_tuple)
print(tuple_length)
Сохраните изменения в файле string_tuple.py и запустите скрипт:
python ~/project/string_tuple.py
Вывод должен быть:
3
- Неизменяемость: Кортежи являются неизменяемыми, то есть вы не можете изменить их элементы после создания. Если вы попытаетесь изменить кортеж, возникнет ошибка.
my_tuple = ("apple", "banana", "cherry")
## Try to modify the tuple (this will raise an error)
## my_tuple[0] = "grape" ## This line will cause an error
Если раскомментировать строку my_tuple[0] = "grape", возникнет ошибка TypeError. Вы можете попробовать это, чтобы увидеть ошибку, но не забудьте закомментировать эту строку обратно, так как скрипт прекратит выполнение при встрече с ошибкой.
- Конкатенация кортежей: Вы можете объединить два кортежа с помощью оператора
+.
tuple1 = ("apple", "banana")
tuple2 = ("cherry", "date")
## Concatenate the tuples
combined_tuple = tuple1 + tuple2
print(combined_tuple)
Сохраните изменения в файле string_tuple.py и запустите скрипт:
python ~/project/string_tuple.py
Вывод должен быть:
('apple', 'banana', 'cherry', 'date')
Понимание этих базовых операций поможет вам эффективно работать со строковыми кортежами в Python.
Примените функцию all() вместе с isinstance()
На этом этапе вы научитесь использовать функцию all() в сочетании с функцией isinstance() для проверки того, являются ли все элементы кортежа строками. Это распространенная задача, когда вам нужно проверить тип данных элементов в наборе.
Сначала разберемся, что делают функции all() и isinstance():
all(iterable): Эта функция возвращаетTrue, если все элементы итерируемого объекта (например, кортежа или списка) являются истинными (или если итерируемый объект пуст). Она возвращаетFalse, если хотя бы один элемент является ложным.isinstance(object, classinfo): Эта функция возвращаетTrue, еслиobjectявляется экземпляром указанногоclassinfo(например,str,int,float). В противном случае она возвращаетFalse.
Теперь создадим скрипт на Python для применения этих функций к строковому кортежу. Откройте редактор VS Code и измените файл string_tuple.py в директории ~/project.
## String tuple
my_tuple = ("apple", "banana", "cherry")
## Check if all elements are strings using all() and isinstance()
all_strings = all(isinstance(item, str) for item in my_tuple)
## Print the result
print(all_strings)
В этом коде:
- Мы определяем строковый кортеж
my_tuple. - Мы используем генераторное выражение
(isinstance(item, str) for item in my_tuple)для проверки, является ли каждыйitemв кортеже строкой. - Функция
all()проверяет, все ли результаты из генераторного выражения равныTrue.
Сохраните изменения в файле string_tuple.py и запустите скрипт:
python ~/project/string_tuple.py
Вы должны увидеть следующий вывод:
True
Это означает, что все элементы в кортеже являются строками.
Теперь изменим кортеж, добавив в него нестроковый элемент, и посмотрим, как изменится вывод.
## Tuple with a non-string element
my_tuple = ("apple", "banana", 123, "cherry")
## Check if all elements are strings using all() and isinstance()
all_strings = all(isinstance(item, str) for item in my_tuple)
## Print the result
print(all_strings)
Сохраните изменения в файле string_tuple.py и запустите скрипт снова:
python ~/project/string_tuple.py
Теперь вывод должен быть:
False
Это происходит потому, что кортеж теперь содержит целое число (123), которое не является строкой.
Используя функцию all() вместе с isinstance(), вы можете легко проверить, что все элементы в кортеже (или любом итерируемом объекте) имеют ожидаемый тип данных. Это особенно полезно при обработке данных из внешних источников или когда вам нужно обеспечить согласованность данных в ваших программах.
Проверка на пустые кортежи
На этом этапе вы узнаете, как проверить, является ли кортеж пустым в Python. Пустой кортеж - это кортеж, который не содержит элементов. Проверка на пустые кортежи - это распространенная задача, особенно при работе с данными, которые могут быть опциональными, или при итеративной обработке данных.
Пустой кортеж определяется с использованием пустых круглых скобок (). Создадим скрипт на Python для проверки, является ли кортеж пустым. Откройте редактор VS Code и измените файл string_tuple.py в директории ~/project.
## Empty tuple
my_tuple = ()
## Check if the tuple is empty
is_empty = len(my_tuple) == 0
## Print the result
print(is_empty)
В этом коде:
- Мы определяем пустой кортеж
my_tuple. - Мы используем функцию
len()для получения длины кортежа и сравниваем ее с0. Если длина равна0, то кортеж пуст.
Сохраните изменения в файле string_tuple.py и запустите скрипт:
python ~/project/string_tuple.py
Вы должны увидеть следующий вывод:
True
Это означает, что кортеж пуст.
В качестве альтернативы, вы можете напрямую использовать кортеж в булевом контексте. Пустой кортеж в булевом контексте оценивается как False, в то время как непустой кортеж оценивается как True.
## Empty tuple
my_tuple = ()
## Check if the tuple is empty using boolean context
is_empty = not my_tuple
## Print the result
print(is_empty)
Сохраните изменения в файле string_tuple.py и запустите скрипт снова:
python ~/project/string_tuple.py
Вывод должен по-прежнему быть:
True
Теперь изменим кортеж, добавив в него несколько элементов, и посмотрим, как изменится вывод.
## Non-empty tuple
my_tuple = ("apple", "banana", "cherry")
## Check if the tuple is empty using boolean context
is_empty = not my_tuple
## Print the result
print(is_empty)
Сохраните изменения в файле string_tuple.py и запустите скрипт:
python ~/project/string_tuple.py
Теперь вывод должен быть:
False
Это происходит потому, что кортеж теперь содержит элементы, поэтому он больше не является пустым.
Проверка на пустые кортежи - это простая, но важная задача в программировании на Python. Она позволяет обрабатывать случаи, когда данные могут отсутствовать, или когда вам нужно выполнять разные действия в зависимости от того, содержит ли кортеж какие-либо элементы.
Резюме
В этом практическом занятии (лабораторной работе) вы узнали о строковых кортежах в Python, которые представляют собой упорядоченные и неизменяемые последовательности строковых элементов, определяемые с использованием круглых скобок. Вы практиковали создание строкового кортежа, доступ к его элементам с помощью индексации и определение его длины с использованием функции len().
В лабораторной работе также подчеркивалась неизменяемость кортежей, с акцентом на то, что их элементы не могут быть изменены после создания. Вы исследовали эти концепции, создавая и манипулируя строковыми кортежами в скрипте на Python, наблюдая за выводом и понимая поведение кортежей при различных операциях.



