Книга «Изучаем Python»



Pdf көрінісі
бет66/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   62   63   64   65   66   67   68   69   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 6 • Словари
alien_0 = {}
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)
Программа определяет пустой словарь 
alien_0
, после чего добавляет в него зна-
чения для цвета и количества очков. В результате создается словарь, который ис-
пользовался в предыдущих примерах:
{'color': 'green', 'points': 5}
Обычно пустые словари используются при хранении данных, введенных пользова-
телем, или при написании кода, автоматически генерирующего большое количество 
пар «ключ—значение».
Изменение значений в словаре
Чтобы изменить значение в словаре, укажите имя словаря с ключом в квадратных 
скобках, а затем новое значение, которое должно быть связано с этим ключом. До-
пустим, в процессе игры цвет пришельца меняется с зеленого на желтый:
alien_0 = {'color': 'green'}
print("The alien is " + alien_0['color'] + ".")
alien_0['color'] = 'yellow'
print("The alien is now " + alien_0['color'] + ".")
Сначала определяется словарь 
alien_0
, который содержит только цвет пришельца; 
затем значение, связанное с ключом 
'color'
, меняется на 
'yellow'
. Из выходных 
данных видно, что цвет пришельца действительно сменился с зеленого на желтый:
The alien is green.
The alien is now yellow.
Рассмотрим более интересный пример: отслеживание позиции пришельца, который 
может двигаться с разной скоростью. Мы сохраним значение, представляющее 
текущую скорость пришельца, и используем его для определения величины гори-
зонтального смещения:
alien_0 = {'x_position': 0, 'y_position': 25, 'speed': 'medium'}
print("Original x-position: " + str(alien_0['x_position']))
# Пришелец перемещается вправо.
# Вычисляем величину смещения на основании текущей скорости.
 
if alien_0['speed'] == 'slow':
x_increment = 1
elif alien_0['speed'] == 'medium':
x_increment = 2
else:
# Пришелец двигается быстро.
x_increment = 3
# Новая позиция равна сумме старой позиции и приращения.


Работа со словарями
105
 
alien_0['x_position'] = alien_0['x_position'] + x_increment
print("New x-position: " + str(alien_0['x_position']))
Сначала определяется словарь с исходной позицией (координаты 
x
и 
y
) и ско-
ростью 
'medium'
. Значения цвета и количества очков для простоты опущены, но 
с ними этот пример работал бы точно так же. Также выводится исходное значение 
x_position
.
В точке 

цепочка 
if
-
elif
-
else
определяет, на какое расстояние пришелец должен 
переместиться вправо; полученное значение сохраняется в переменной 
x_increment

Если пришелец двигается медленно (
'slow'
), то он перемещается на одну единицу 
вправо; при средней скорости (
'medium'
) он перемещается на две единицы вправо; 
наконец, при высокой скорости (
'fast'
) он перемещается на три единицы вправо. 
Вычисленное смещение прибавляется к значению 
x_position
в 

, а результат со-
храняется в словаре с ключом 
x_position
.
Для пришельца со средней скоростью позиция смещается на две единицы:
Original x-position: 0
New x-position: 2
Получается, что изменение одного значения в словаре изменяет все поведение при-
шельца. Например, чтобы превратить пришельца со средней скоростью в быстрого, 
добавьте следующую строку:
alien_0['speed'] = fast
При следующем выполнении кода блок 
if
-
elif
-
else
присвоит 
x_increment
большее 
значение.
Удаление пар «ключ—значение»
Когда информация, хранящаяся в словаре, перестает быть ненужной, пару «ключ—
значение» можно полностью удалить при помощи команды 
del
. При вызове до-
статочно передать имя словаря и удаляемый ключ.
Например, в следующем примере из словаря 
alien_0
удаляется ключ 
'points'
вместе со значением:
alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
 
del alien_0['points']
print(alien_0)
Строка 

приказывает Python удалить ключ 
'points'
из словаря 
alien_0
, а также 
удалить значение, связанное с этим ключом. Из вывода видно, что ключ 
'points'
и его значение 5 исчезли из словаря, но остальные данные остались без измене-
ний:
{'color': 'green', 'points': 5}
{'color': 'green'}




Достарыңызбен бөлісу:
1   ...   62   63   64   65   66   67   68   69   ...   266




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

    Басты бет