×
Traktatov.net » Язык программирования Python » Читать онлайн
Страница 9 из 141 Настройки

>del d[0]   # удаляется пара ключ–значение с данным ключом

>print d

>for key, val in d.items(): # цикл по всему словарю

> print key, val

>for key in d.keys(): # цикл по ключам словаря

> print key, d[key]

>for val in d.values(): # цикл по значениям словаря

> print val

>d.update(d0) # пополняется словарь из другого

>print len(d) # количество пар в словаре

Тип file

Объекты этого типа предназначены для работы с внешними данными. В простом случае — это файл на диске. Файловые объекты должны поддерживать основные методы: >read(), >write(), >readline(), >readlines(), >seek(), >tell(), >close() и т.п.

Следующий пример показывает копирование файла:

>f1 = open("file1.txt", "r")

>f2 = open("file2.txt", "w")

>for line in f1.readlines():

> f2.write(line)

>f2.close()

>f1.close()

Стоит заметить, что кроме собственно файлов в Python используются и файлоподобные объекты. В очень многих функциях просто неважно, передан ли ей объект типа >file или другого типа, если он имеет все те же методы (и в том же смысле). Например, копирование содержимого по ссылке (URL) в файл >file2.txt можно достигнуть, если заменить первую строку на

>import urllib

>f1 = urllib.urlopen("http://python.onego.ru")

О модулях, классах, объектах и функциях будет говориться на других лекциях.

Выражения

В современных языках программирования принято производить большую часть обработки данных в выражениях. Синтаксис выражений у многих языков программирования примерно одинаков. Синтаксис выражений Python не удивит программиста чем–то новым. (Разве что цепочечные сравнения могут приятно порадовать.)

Приоритет операций показан в нижеследующей таблице (в порядке уменьшения). Для унарных операций >x обозначает операнд. Ассоциативность операций в Python — слева–направо, за исключением операции возведения в степень (>**), которая ассоциативна справа налево.

ОперацияНазвание
>lambdaлямбда–выражение
>orлогическое ИЛИ
>andлогическое И
>not xлогическое НЕ
>in, >not inпроверка принадлежности
>is, >is notпроверка идентичности
><, ><=, >>, >>=, >!=, >==сравнения
>|побитовое ИЛИ
>^побитовое исключающее ИЛИ
>&побитовое И
><<, >>>побитовые сдвиги
>+>-сложение и вычитание
>*, >/, >%умножение, деление, остаток
>+x, >-xунарный плюс и смена знака
>~xпобитовое НЕ
>**возведение в степень
>x.атрибутссылка на атрибут
>x[индекс]взятие элемента по индексу
>x[от:до]выделение среза (от и до)
>f(аргумент, ...)вызов функции
>( ... )скобки или кортеж
>[ ... ]список или списковое включение
>{кл:зн, ...}словарь пар ключ–значение
>`выражения`преобразование к строке (repr)

Таким образом, порядок вычислений операндов определяется такими правилами:

1. Операнд слева вычисляется раньше операнда справа во всех бинарных операциях, кроме возведения в степень.

2. Цепочка сравнений вида >a < b < c ... y < z фактически равносильна: >(а < b) and (b < c) and ... and (y < z).

3. Перед фактическим выполнением операции вычисляются нужные для нее операнды. В большинстве бинарных операций предварительно вычисляются оба операнда (сначала левый), но операции >or и >and, а также цепочки сравнений вычисляют такое количество операндов, которое достаточно для получения результата. В невычисленной части выражения в таком случае могут даже быть неопределенные имена. Это важно учитывать, если используются функции с побочными эффектами.