Вход/Регистрация
Язык программирования Python
вернуться

Сузи Роман Арвиевич

Шрифт:

Листинг

d = {1: 'one', 2: 'two', 3: 'three', 4: 'four'}

d0 = {0: 'zero'}

print d[1] # берется значение по ключу

d[0] = 0 # присваивается значение по ключу

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)

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

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

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

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

Аргументы функций, выражения для списков, кортежей, словарей и т.п. вычисляются слева–направо, в порядке следования в выражении.

В случае неясности приоритетов желательно применять скобки. Несмотря на то, что одни и те же символы могут использоваться для разных операций, приоритеты операций не меняются. Так, % имеет тот же приоритет, что и *, а потому в следующем примере скобки просто необходимы, чтобы операция умножения произошла перед операцией форматирования:

Листинг

print "%i» % (i*j)

  • Читать дальше
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: