М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения


Посмотрим, что произойдет при попытке изменения одного из элементов в кортеже  dimensions : dimensions = (200, 50)



Pdf көрінісі
бет60/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   56   57   58   59   60   61   62   63   ...   334
Байланысты:
Изучаем Python

81
Посмотрим, что произойдет при попытке изменения одного из элементов в кортеже 
dimensions
:
dimensions = (200, 50)

dimensions[0] = 250
Код в точке 

пытается изменить первое значение, но Python возвращает ошибку 
типа. По сути, так как мы пытаемся изменить кортеж, а эта операция недопустима 
для объектов этого типа, Python сообщает о невозможности присваивания нового 
значения элементу в кортеже:
Traceback (most recent call last):
File "dimensions.py", line 3, in
dimensions[0] = 250
TypeError: 'tuple' object does not support item assignment
И это хорошо, потому что мы хотим, чтобы Python сообщал о попытке изменения 
размеров прямоугольника в программе, выдавая сообщение об ошибке.
ПРИМЕЧАНИЕ
Формально кортеж определяется наличием запятой; круглые скобки 
просто делают запись более аккуратной и понятной . Если вы хотите определить кортеж, 
состоящий из одного элемента, включите завершающую запятую:
my_t = (3,)
Обычно создание кортежа из одного элемента не имеет особого смысла . Тем не менее 
это может произойти при автоматическом генерировании кортежей .
Перебор всех значений в кортеже
Для перебора всех значений в кортеже используется цикл 
for
, как и при работе со 
списками:
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
Python возвращает все элементы кортежа по аналогии с тем, как это делается со 
списком:
200
50
Замена кортежа
Элементы кортежа не могут изменяться, но вы можете присвоить новое значение 
переменной, в которой хранится кортеж. Таким образом, для изменения размеров 
прямоугольника следует переопределить весь кортеж:


82
Глава 4 • Работа со списками

dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)

dimensions = (400, 100)

print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
Блок, начинающийся в точке 

, определяет исходный кортеж и выводит исходные 
размеры. В точке 

в переменной 
dimensions
сохраняется новый кортеж, после чего 
в точке 

выводятся новые размеры. На этот раз Python не выдает сообщений об 
ошибке, потому что замена значения переменной является допустимой операцией:
Original dimensions: 
200 
50 
Modified dimensions: 
400 
100
По сравнению со списками структуры данных кортежей относительно просты. 
Используйте их для хранения наборов значений, которые не должны изменяться 
на протяжении жизненного цикла программы.


Достарыңызбен бөлісу:
1   ...   56   57   58   59   60   61   62   63   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет