3.2.5. Словари
Встроенный тип данных словаря (dictionary) в языке Python предоставляет функциональность ассоциативных массивов, реализованную на базе хеш-таблиц. Встроенная функция len возвращает количество пар «ключ–значение» в словаре. Команда del используется для удаления пары «ключ–значение». Как и в случае со списками, доступны различные методы для выполнения операций со словарями ( clear , copy , get , items , keys , update и values ).
>>> x = {1: "one", 2: "two"}
>>> x["first"] = "one"
Связывает с ключом «first» значение «one» >>> x[("Delorme", "Ryan", 1995)] = (1, 2, 3)
>>> list(x.keys())
['first', 2, 1, ('Delorme', 'Ryan', 1995)]
>>> x[1]
'one'
>>> x.get(1, "not available")
'one'
>>> x.get(4, "not available")
'not available'
Ключи должны относиться к неизменяемому типу — числа, строки, кортежи и т. д. Значениями могут быть объекты любого типа, включая такие изменяемые типы, как списки и словари. При попытке обратиться к значению ключа, отсут-ствующего в словаре, произойдет ошибка KeyError . Чтобы избежать этой ошибки, при отсутствии ключа в словаре метод словаря get может возвращать значение, определяемое пользователем.
3.2.6. Множества
Множество (set) в Python представляет собой неупорядоченный набор объектов, используемый в ситуациях, когда вас интересует лишь сам факт принадлежности объекта к множеству и уникальность в множестве. Множество ведет себя как кол-лекция ключей словаря без ассоциированных значений:
>>> x = set([1, 2, 3, 1, 3, 5])
>>> x
{1, 2, 3, 5}
>>> 1 in x
True
>>> 4 in x 
False
>>>
Множество создается вызовом set для последовательности — например, для спи-ска . При преобразовании последовательности в множество дубликаты удаляют-ся . Ключевое слово in используется для проверки принадлежности объекта к множеству.
3.2.7. Объекты файлов
Для работы с файлами в Python используются объекты файлов: >>> f = open("myfile", "w")
>>> f.write("First line with necessary newline character\n") 44
>>> f.write("Second line to write to the file\n")
33
>>> f.close()
>>> f = open("myfile", "r")
>>> line1 = f.readline()
>>> line2 = f.readline()
>>> f.close()
>>> print(line1, line2)
First line with necessary newline character
Second line to write to the file
>>> import os
>>> print(os.getcwd())
c:\My Documents\test
>>> os.chdir(os.path.join("c:\\", "My Documents", "images")) >>> filename = os.path.join("c:\\", "My Documents",
"test", "myfile")
>>> print(filename)
c:\My Documents\test\myfile
>>> f = open(filename, "r")
>>> print(f.readline())
First line with necessary newline character
>>> f.close()
Команда open создает объект файла. В данном случае файл myfile в текущем ра-бочем каталоге открывается в режиме записи ( "w" ). После записи двух строк в файл и его закрытия файл открывается снова, на этот раз в режиме для чтения ( "r" ). Модуль os предоставляет несколько функций для перемещения по файловой системе и работы с именами файлов и каталогов. В данном примере происходит перемещение в другой каталог . Тем не менее к файлу все равно можно обратиться по абсолютному имени .
Также в Python доступны другие средства ввода/вывода. Например, встроенная функция input запрашивает и вводит строку. Библиотечный модуль sys открывает доступ к потокам stdin , stdout и stderr . Библиотечный модуль struct предостав-ляет поддержку чтения и записи файлов, которые генерируются (или должны использоваться) программами на C. Библиотечный модуль Pickle обеспечивает возможность долгосрочного хранения данных посредством простой записи и чтения из файлов типов данных Python.
3.3. Управляющие конструкции
Python поддерживает обширный набор конструкций для управления выполне-нием кода, к числу которых относятся стандартные структуры условного выбора и циклов.
3.3.1. Логические значения и выраженияВ Python предусмотрено несколько возможных способов выражения логических значений; логическая константа False , 0 , неопределенное значение Python None и пустые значения (например, пустой список [] или пустая строка "" ) — все эти значения интерпретируются как False . Логическая константа True и все остальные значения интерпретируются как True .
Для создания логических условий используются операторы сравнения ( < , <= , == , > , >= , != , is , is not , in , not in ) и логические операторы ( and , not , or ); все они воз-вращают либо True , либо False .
3.3.2. Команда if-elif-else
Выполняется блок кода после первого истинного условия (в if или elif ). Если ни одно условие не равно True , то выполняется блок кода после else : x = 5
if x < 5:
y = -1
Читать дальше