Справочник PYTHON. Кратко, быстро, под рукой [Е. В. Дубовик] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Кольцов Д.М., Дубовик Е.В.

КРАТКО # БЫСТРО # ПОД РУКОИ

Операторы и синтаксис Python * ООП
Регулярные выражения * Кортежи * Итераторы и генераторы
Наглядные примеры

Кольцов Д.М., ДУБовик Е.В.

Справочник

on

КРАТКО # БЫСТРО # ПОД РУКОИ

"Наука и Техника"
г. Санкт-Петербург

УДК 004.42 ББК 32.973

Кольцов Д.М., Дубовик Е.В.
СПРлвочник РУТНОN. Кратко, быстро, под рукой - СПб.: Наука
и Техника, 2021. - 288 с., ил.
Серия "Справочник"
Данный справочник содержит всю ключевую информацию о Python
в удобной и наглядной форме. Структура справочника позволяет
быстро и удобно находить нужную информацию, получать примеры
использования тех или иных элементов и конструкций Python.
Отдельное внимание уделено внимание таким темам, как регуляр­
ные выражения, кортежи, итераторы и генераторы, объектно-ориен­
тированное программирование на Python.
Справочник будет полезен всем, кто использует или изучает Python:
от начинающих до профессионалов.

Все права защн:шены. HIIUDI часп. даlПIОЙ mиrи не может бwтъ воспроюведена ■ DIDЙ бы ro ни было форме бе-J письменноrо pa.зpewewu:
впадст.цев illflOP'КID. прав.
� нс несеr сrrкn:пенности за во»10.:JIЫЙ ущерб, причннениыii в ходе нсnоm.эоВIИИI мвтериаяов данной kНIП"И, а тu:ае за
доступиосп. мпериаnо■, «:ыnки на иm,рыс вы м� найrи в этой книrе. На wомекr подrоmвки кииrи а: н:шанию все CCWJIDI на иитернет•
ресурсы 6WJ111 дейсrвуюЩЮ1И.

1

ISBN 978-5-94387-717-9

9 78- 5- 94387- 717- 9

Контактные телефоны издательства:
(812) 412 70 26
Официальный сайт: www.nit.com.ru

© Кольцов Д.М.
© Наука и Техника (оригинал-макет)

СОДЕРЖАНИЕ
ВВЕДЕНИЕ••.•.••..•...••..••..•..•...•.•.•.•..•.•.•....••....•.•... 1 О
ГЛАВА 1. ОСНОВЫ. ПЕРВАЯ ПРОГРАММА•.•...•.•.••.•..• 17
1. 1. О ВЕРСИИ РУТНОN ••••••••••••••••••••••.•....•••.••..••..••..•.•••••••••.•• 18
1.2. УСТАНОВКА РУТНОN 3 ••••••••••••••••••••••••••••••••••••••••••••••••••••• 19
1.3. ПЕРВАЯ ПРОГРАММА НА РУТНОN •••..••.••..•.....•..••....••••••••••• 23
1.4. ПОДРОБНО О IDLE ••••••.•••••.••....••••••••••••••••.••••••••••••••••••.••• 26
1.4.1. Подсказки при вводе кода ...............................................26
1.4.2. Подсветка синтаксиса .....................................................27
1.4.3. Изменение цветовой темы ...............................................28
1.4.4. Горячие клавиши..............................................................30
1.5. ПОМЕЩЕНИЕ ПРОГРАММЫ В ОТДЕЛЬНЫЙ ФАЙЛ.
КОДИРОВКА ТЕКСТА •••••••••••••••••••••••••••••••••••••••••••.•••••• 32
1.6. СТРУКТУРА ПРОГРАММЫ •••••••••••••........•.•....•.......•....•..•.•.• 33
1.7. КОММЕНТАРИИ •••••••••••••••••.•.•••••.•••••••••••••••••••••••••••••••••••• 38
1.8. ВВОд/ВЫВОД ДАННЫХ ••••••••••••••••••••••••••••••••••••••••••••••••••• 39
1.9. ЧТЕНИЕ ПАРАМЕТРОВ КОМАНДНОЙ СТРОКИ ••••••••••••••••••••••• 42

ГЛАВА 2. ПЕРЕМЕННЫЕ И ТИПЫ ДАННЫХ •••••••••••••.•• 43
2. 1. ИМЕНА ПЕРЕМЕННЫХ ••....•.••••••••••••••••••••••••••••••••••••••••••••• 45
2.2. ТИПЫ ДАННЫХ ••.••••••••••••••••••••••.•.••..... , •••.•..•..•.......•....•.•. 52
2.3. ПРИСВАИВАНИЕ ЗНАЧЕНИЙ .•...•......•...••••••••••••••••••••••••••••• 55

-

Справочник Python

'-------------------'----"--

2.4. ПРОВЕРКА ТИПА ДАННЫХ И ПРИВЕДЕНИЕ ТИПОВ ................ 58
2.5. УДАЛЕНИЕ ПЕРЕМЕННОЙ ................................................. 62

ГЛАВА З. ОПЕРАТОРЫ ........................................... 63
3. 1. МАТЕМАТИЧЕСКИЕ ОПЕРАТОРЫ И РАБОТА С ЧИСЛАМИ ......... 64
3.1.1. Математические операторы ............................................64
3.1.2. Пример: вычисление времени в пути ...............................67
3.1.3. Пример: вычисление расхода топлива .............................68
3.1.4. Выбор правильного типа данных ......................................70
3.2. ОПЕРАТОРЫ ДЛЯ РАБОТЫ С ПОСЛЕДОВАТЕЛЬНОСТЯМИ ...... 72
3.3. ОПЕРАТОРЫ ПРИСВАИВАНИЯ ........................................... 73
3.4. ДВОИЧНЫЕ ОПЕРАТОРЫ .................................................. 74
3.5. ПРИОРИТЕТ ВЫПОЛНЕНИЯ ОПЕРАТОРОВ ........................... 75
3.6. ПРОСТЕЙШИЙ КАЛЬКУЛЯТОР ........................................... 76

ГЛАВА 4. ЦИКЛЫ И УСЛОВНЫЕ ОПЕРАТОРЫ ............. 79
4. 1. УСЛОВНЫЕ ОПЕРАТОРЫ .................................................. 80
4.1.1. Логические значения .......................................................80
4.1.2. Операторы сравнения .....................................................81
4.1.3. Оператор if"else .............................................................. 84
4.1.4. Блоки кода и отступы ....................................................... 87
4.2. циклы ......................................................................... 88
4.2.1. Цикл for ............................................................................ 88
4.2.2. Цикл while ........................................................................91
4.2.3. Операторы break и coпtiпue .............................................92
4.2.4. Функция range() ...............................................................93

--'---------�-

Содержание

4.3. БЕСКОНЕЧНЫЕ ЦИКЛЫ.................................................... 96
4.3.1. Бесконечный цикл по ошибке ..........................................96
4.3.2. Намеренный бесконечный цикл .......................................99
4.4. ИСТИННЫЕ И ЛОЖНЫЕ ЗНАЧЕНИЯ .................................. 101
4.5. ПРАКТИЧЕСКИЙ ПРИМЕР.
ПРОГРАММА "УРОВЕНЬ ДОСТУПА ............................... 102

ГЛАВА 5. МАТЕМАТИЧЕСКИЕ ФУНКЦИИ ................. 105
5.1. ПОДДЕРЖИВАЕМЫЕ ТИПЫ ЧИСЕЛ .................................. 1Об
5.2. ЧИСЛОВЫЕ ФУНКЦИИ ................................................... 109
5.2.1. Округление числовых значений...................................... 112
5.2.2. Форматирование чисел для вывода ............................... 114
5.3. МАТЕМАТИЧЕСКИЕ ФУНКЦИИ ......................................... 115
5.4. СЛУЧАЙНЫЕ ЧИСЛА. МОДУЛЬ RANDOM............................ 117
5.5. ЗНАЧЕНИЯ INFINIТY И NAN .............................................. 120
5.6. ВЫЧИСЛЕНИЯ С БОЛЬШИМИ ЧИСЛОВЫМИ МАССИВАМИ.
БИБЛИОТЕКА NUMPY ............................................... 121
5.7. ПРОГРАММА "УГДДДЙ число·· ........................................ 122
5.7.1. Постановка задачи......................................................... 122
5.7.2. Работа с генератором случайных чисел ......................... 123
5.7.З. Код программы.............................................................. 123
5.7.4. Исправление логической ошибки в программе .............. 125

ГЛАВА 6. СТРОКИ И СТРОКОВЫЕ ФУНКЦИИ............ 129
б.1. ЧТО ТАКОЕ СТРОКА? ВЫБОР КАВЫЧЕК ............................. 130
6.2. СОЗДАНИЕ СТРОКИ ...................................................... 133

-�-----------------С_п_р_а_воч_н_ик_Руt_hо_n
6.3. ТРОЙНЫЕ КАВЫЧКИ ...................................................... 136
6.4. СПЕЦИАЛЬНЫЕ СИМВОЛЫ............................................. 137
6.5. ДЕЙСТВИЯ НАД СТРОКАМИ ............................................ 138
6.5.1. Обращение к элементу по индексу................................. 138
6.5.2. Срез строки ................................................................... 139
6.5.3. Конкатенация строк ....................................................... 140
6.5.4. Проверка на вхождение ................................................. 140
6.5.5. Повтор ........................................................................... 141
6.5.6. Функция lenO .................................................................141
6.6. ФОРМАТИРОВАНИЕ СТРОКИ И МЕТОД FORMAT() ................ 142
6.6.1. Оператор форматирования % ........................................ 142
6.6.2. Методы выравнивания строки ....................................... 146
6.6.3. Метод format() ..............................................................147
6.7. ФУНКЦИИ И МЕТОДЫ ДЛЯ РАБОТЫ СО СТРОКАМИ ............. 150
6.8. НАСТРОЙКА ЛОКАЛИ ..................................................... 157
6.9. ПОИСК И ЗАМЕНА В СТРОКЕ ........................................... 158
6.1О. ЧТО В СТРОКЕ? ........................................................... 159
6.11.ШИФРОВАНИЕ СТРОК.................................................. 161
6.12. ПЕРЕФОРМАТИРОВАНИЕ ТЕКСТА.
ФИКСИРОВАННОЕ ЧИСЛО КОЛОНОК .......................... 161

ГЛАВА 7. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ .................... 165
7. 1. ВВЕДЕНИЕ В РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ .......................... 166
7.2. ФУНКЦИЯ COMPILE() И ОСНОВЫ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ 168
7.3. МЕТОДЫ МАТСН() И SEARCH() ••••••••••••••.•••.•••••••••••••••••••••• 174

Содержание
________-

______:__:__:__

7.4. МЕТОД FINDALL() .......................................................... 176
7.5. МЕТОД SUB() ............................................................... 177
7.6. РАЗЛИЧНЫЕ ПРАКТИЧЕСКИЕ ПРИМЕРЫ ........................... 178
7.6.1. Разделение строк с использованием разделителей ....... 178
7.6.2. Использование маски оболочки ..................................... 180
7.6.3. Совпадение текста в начале и конце строки ................... 181
7.6.4. Поиск по шаблону .......................................................... 182
7.6.5. Поиск и замена текста ................................................... 186
7.6.6. Удаление нежелательных символов из строки ............... 189

ГЛАВА 8. СПИСКИ ............... ............................... 193
8. 1. ЧТО ТАКОЕ СПИСОК? ..................................................... 194
8.2. ОПЕРАЦИИ НАД СПИСКАМИ ........................................... 196
8.3. МНОГОМЕРНЫЕ СПИСКИ ............................................... 199
8.4. ПРОХОД ПО ЭЛЕМЕНТАМ СПИСКА ................................... 199
8.5. ПОИСК ЭЛЕМЕНТА В СПИСКЕ ••••••••.•••••••.••••••••••••••••••••••••• 200
8.6. ДОБАВЛЕНИЕ И УДАЛЕНИЕ ЭЛЕМЕНТОВ В СПИСКЕ •••••••••••• 202
8.7. ПЕРЕМЕШИВАНИЕ ЭЛЕМЕНТОВ
И ВЫБОР СЛУЧАЙНОГО ЭЛЕМЕНТА •••••••••••••••••••••••••••• 204
8.8. СОРТИРОВКА СПИСКА ••••••••••••••••••••••••••••••••••••••••••••••••••• 205
8.9. ПРЕОБРАЗОВАНИЕ СПИСКА В СТРОКУ ••••••••••••••••••••••••••••• 206
8.1О. ВЫЧИСЛЕНИЯ С БОЛЬШИМИ ЧИСЛОВЫМИ МАССИВАМИ •• 206
8.11. ПРОГРАММА ··гАРАЖ" .•..•.•.•••••••••••••••••••••••••••••••••••••••••• 210

н ик Руt hо_п
С п р ав о ч _
-�---------------- ______ _ _

ГЛАВА 9. КОРТЕЖИ ..........................•..•..•......•..•. 215
9.1. ПОНЯТИЕ КОРТЕЖА ...................................................... 216
9.2. СОЗДАНИЕ КОРТЕЖЕЙ .................................................. 217
9.3. МЕТОДЫ КОРТЕЖЕЙ .•••.•.•.•.••••.••••.••.••.••.•.•.•..•............... 219
9.4. ПЕРЕБОР ЭЛЕМЕНТОВ КОРТЕЖА ..................................... 219
9.5. КОРТЕЖ КАК УСЛОВИЕ .................................................. 220
9.6. ФУНКЦИЯ LEN() И ОПЕРАТОР IN ....................................... 220
9.7. НЕИЗМЕННОСТЬ КОРТЕЖЕЙ И СЛИЯНИЯ .......................... 220
9.8. МОДУЛЬ ITERTOOLS ...................................................... 221
9.9. РАСПАКОВКА КОРТЕЖА В ОТДЕЛЬНЫЕ ПЕРЕМЕННЫЕ......... 223
9. 1 О. СПИСКИ VS КОРТЕЖИ .................................................. 229

ГЛАВА 10. МНОЖЕСТВА И СЛОВАРИ ..................... 231
1 О. 1. ПОНЯТИЕ СЛОВАРЯ ..................................................... 232
10.2. РАЗЛИЧНЫЕ ОПЕРАЦИИ НАД СЛОВАРЯМИ ...................... 235
10.2.1. Доступ к элементу........................................................ 235
10.2.2. Добавление и удаление элементов словаря ................. 236
10.2.3. Перебор элементов словаря ........................................ 236
10.2.4. Сортировка словаря ....................................................237
10.2.5. Методы keys(), values() и некоторые другие ................. 237
10.2.6. Программа Dict ............................................................ 238
10.3. ПОНЯТИЕ МНОЖЕСТВА ................................................ 243
10.4. ОПЕРАЦИИ НАД МНОЖЕСТВОМ ..................................... 244
10.5. МЕТОДЫ МНОЖЕСТВ................................................... 246

_Со_д_е_р_ж_ан_и_е_______

_
_ _________�-

ГЛАВА 11 . ООП И РУТНОN ..........•.•..............•.•..•... 249
11.1. ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ ...........................•................. 250
11.2. ОПРЕДЕЛЕНИЕ КЛАССА И СОЗДАНИЕ ОБЪЕКТА •.•••••••••••.• 254
11.3. КОНСТРУКТОР И ДЕСТРУКТОР ••••.••••.•.•••••••••••••.••........... 256
11.4. НАСЛЕДОВАНИЕ ..............•....•......•.............................. 256
11.5. СПЕЦИАЛЬНЫЕ МЕТОДЫ .......•••••••.•••••••.•.••.•••.•.••.•.•..... 259
11.6. СТАТИЧЕСКИЕ МЕТОДЫ .....•.............................•...••.••••• 262
11.7. АБСТРАКТНЫЕ МЕТОДЫ•.••.••.•.••...•.•......•.......•••••••.••••••• 263
11.8. ПЕРЕГРУЗКА ОПЕРАТОРОВ ........................................... 263
11.9. СВОЙСТВА КЛАССА .•••••••..•••••.••••.•.••••••.••.•••••.••.••••••••••• 266
11.1О. ДЕКОРАТОРЫ КЛАССА •••.••••••••••.•.••••••.••••••••.••.••••.•••••• 267

ГЛАВА 12. ИТЕРАТОРЫ И ГЕНЕРАТОРЫ .•.•.•.•.•.•..•..• 269
12.1. РУЧНОЕ ИСПОЛЬЗОВАНИЕ ИТЕРАТОРА .••..•.......••........•... 270
12.2. ДЕЛЕГИРОВАНИЕ ИТЕРАЦИИ ...........•....•..••.••.•.•••••••••.••• 272
12.3. СОЗДАНИЕ НОВОГО ШАБЛОНА ИТЕРАЦИИ
С ПОМОЩЬЮ ГЕНЕРАТОРОВ •••.•••••••••••••••••••.••••••••••••. 273
12.4. РЕАЛИЗАЦИЯ ПРОТОКОЛА ИТЕРАТОРА •..•.....••••••.••••••••••• 276
12.5. ИТЕРАЦИЯ В ОБРАТНОМ НАПРАВЛЕНИИ ••••.••••••••.••••.•••••• 279
12.6. ЭКСТРА-СОСТОЯНИЕ ФУНКЦИИ-ГЕНЕРАТОРА •................. 280
12.7. ПРОПУСК ПЕРВОЙ ЧАСТИ ИТЕРИРУЕМОГО .••.••.••••••••••••.•. 282
12.8. ИТЕРИРОВАНИЕ ПО ВСЕМ ВОЗМОЖНЫМ
КОМБИНАЦИЯМ ИЛИ ПЕРЕСТАНОВКАМ •••.••••••••.••••.•••• 284

ВВЕДЕНИЕ

Введение

,f:м python -

Вкратце о Python
Python - одновременно мощный и простой язык программирования,
разработанный Гвидо ванн Россумом (Guido van Rossum) в 1991
году. С одной стороны, язык довольно молодой (тот же С был раз­
работан в 1972 году), с другой стороны, ему уже 30 лет и за это время
его успели довести до того уровня, когда на нем можно написать про­
ект любого масштаба, в том числе коммерческие приложения, рабо­
тающие с очень важными данными.
Python - это высокоуровневый язык программирования общего на­
значения, ориентированный на повышение производительности раз­
работчика и читаемости кода. Другими словами, писать программы
на Python довольно просто, а код самих программ будет гораздо луч­
ше восприниматься, чем в случае с другими языками программиро­
вания.
Синтаксис ядра этого языка программирования минималистичен,
однако, стандартная библиотека содержит множество полезных
функций.
Тех вольностей, которые себе программист мог позволить в других
языках программирования, например, в Pascal, С, Java или РНР,
здесь непозволительны. Один лишний или недостающий отступ - и
вы получите синтаксическую ошибку. Так Python приучает програм­
миста писать красивый и читабельный код. С одной стороны, если я
бы не советовал выбирать Python в качестве первого языка програм-

- 4+python

Справочник Python

мирования - вам будет сложно. С другой стороны, это как учиться
ездить на автомобиле зимой в гололед. После такой школы летом вы
уж точно будете ездить - с легкостью сможете освоить другие языки
программирования.
Python поддерживает несколько парадигм программирования, в том
числе структурное, объектно-ориентированное, функциональное,
императивное и аспектно-ориентированное. Это означает, что вы
можете выбрать любой стиль программирования. Новичкам, соз­
дающим относительно несложные программы, подойдет функцио­
нальный стиль. А для серьезных проектов, как правило, выбирают
объектно-ориентированное и/или аспектно-ориентированное
программирование.

Кросс-платформенность
Python портирован и работает почти на всех известных платформах
- от карманных компьютеров и смартфонов до мейнфреймов. Су­
ществуют версии Python под Microsoft Windows, практически все
варианты UNIX (включая FreeBSD и Linux), Plan 9, macOS и macOS
Х, iPhone OS 2.0 и выше, Palm OS, OS/2, Amiga, HaikuOS, AS/400 и
даже OS/390, Windows Moblle, Symblan и Android.
Важно понимать, что программы, написанные на Python, независимы
от платформы. Другими словами, вы можете написать программу, ко­
торая будет работать и на вашем macOS Х и на Windоws-компьютере
приятеля и даже на iPhone. Главное, чтобы на устройстве, на котором
планируется запускать программу, был установлен Python.

Введение

�ь python

111

Python " один из
самых простых языков
программирования
Когда-то давно программы писались с помощью переключения раз­
личных разъемов на ком.пьютерах, которые занимали целые залы.
Затем появились перфокарты - специальные карточки, используе­
мые для ввода программы, после - язык программирования Ассем­
блер, позволяющий манипулировать данными прямо в регистрах
процессора. Это пример низкоуровнего языка. Даже самая простая
программа на этом языке представляла довольно большой, сложный
и непонятный непосвященному человеку кусок кода.
С появлением высокоуровневых языков, таких как С, J ava все из­
менилось. Такие языки программирования ближе к человеческому
языку, чем к машинному. Python делает синтаксис еще проще. Его
правила приближаются к английскому языку. Создание программ на
Python настолько простой процесс, что о нем говорят как о "програм­
мировании со скоростью мысли". Все это позволяет повысить произ­
водительность труда программиста - программы на Python требуют
меньше времени на разработку, чем программы на других языках
программирования.

Популярность Python
Если вы раньше ничего не слышали о Python и думаете, что он непо­
пулярен, то вы ошибаетесь. Его используют разработчики со всего
мира, ним пользуются крупнейшие корпорации, такие как Google,
NASA, Red Hat, Yahoo!, Xerox, IВМ, Microsoft и др. Так, Google

- 4цpython

Справочник Python

предпочитает C++,Java и Python 1 , а Microsoft даже открыла Python
Developer Center2
Популярные программные продукты Yahoo, в том числе DjangoЗ,
TurboGears4 и Zope5 написаны на Python.
Некоторым начинающим программистам, которые только выбирают
язык программирования, программы на Python могут показаться не­
казистыми. Порой кажется, что ничего серьезного на этом языке не
разработаешь, и он больше приближен к сценариям оболочки, чем к
полноценным языкам программирования, таким как С#.
Это заблуждение. Многие популярные игры от ЕА Games, 2К Games
и Disney Interactive, написаны на Python:
https: //gamedev.stackexchange.com/questions/5035/famous­
games-written-in-python

Игра - это одно из самых сложных приложений, поскольку оно со­
четает работу с графикой, музыкой, сложную логику и т.д.

Сколько это стои-r?
Интерпретатор Python абсолютно бесплатен и распространяется
свободно. Чтобы использовать его, вам не нужно ничего платить, но
зато вы можете абсолютно свободно продавать свои программы, на­
писанные на Python - это позволяет лицензия, по которой распро­
страняется этот интерпретатор.
1

https://www.quora.comjWhich-programming-languages-does-Google-use-internally

2

https://azure.microsoft.com/en-us/develop/python/

3

https://en.wikipedia.org/wiki/Django_(web_framework)

4

https:j/en.wikipedia.org/wiki/ТurboGears

5

https:j/ru.wikipedia.org/wiki/Zope

Введение

.python -

Такие условия лицензии способствуют популярности этого языка
программирования. Ведь для старта вам не нужно ничего и никому
платить. Вы можете использовать Python, как для обучения програм­
мированию, так и для создания коммерческих программ. В отличие
от других языков программирования, где за использование среды
программирования нужно выложить кругленькую сумму, например,
за Visual Studio придется выложить более 500 евро, а стоимость не­
которых сторонних компонентов превышает 1500 евро (например,
DevExpress ).
Понятно, что это останавливает многих программистов-одиночек
или заставляет их использовать пиратские версии. А на Python вы
можете программировать с чистой совестью - все изначально доступ­
но бесплатно.

Философия Python
Чтобы введение не было однотипным и скучным, расскажу вам о фи­
лософии Python. Python - это не простой язык программирования, у
него есть своя философия, разработанная Тимом Петерсом.
Философия выводится один раз за сессию при вводе команды
import this
Результат выполнения этой команды изображен на рис. 1.

-· jJ; python

Справочник Python
о

х

f!je fdil. She1i QeЬi;g QpUons x.YindW /jelp
·
PYth·�·� i"i. 5" (·;;з. i: s·;"tS9co�З:i;-t·;· мar'""i8"""".:.i01"e". 16: 07: 46j [М.s"ё V :'iiio·o· ·i2"""ь".i"t" {!nte
lJ J cn •,1inЗ2
Туре ",;,:;pyrig't',t", "credits" or "lic�n'!l�O" [or /!'.?re info�ation.
>>> :.�;(-�. thi$
The Zt!r. of Pytl1и::., Ьу T1m Pet.ers
&-atatit"ul 1.S b�tt.�r. th