Главная страница

Самоучитель PythonВыпуск 2Дмитрий Мусинмая 07, 2017


Скачать 0.74 Mb.
НазваниеСамоучитель PythonВыпуск 2Дмитрий Мусинмая 07, 2017
Дата20.01.2019
Размер0.74 Mb.
Формат файлаpdf
Имя файлаPython3.pdf
ТипПрограмма
#64480
страница1 из 12
  1   2   3   4   5   6   7   8   9   ...   12

Самоучитель Python
Выпуск 0.2
Дмитрий Мусин
мая 07, 2017

Оглавление
1
Возможности языка python
1
2
Скачать Python
2
2.1
Установка Python на Windows
2 2.2
Установка Python на linux системы (ubuntu, linux mint и другие)
8
3
Первая программа. Среда разработки IDLE
10
4
Синтаксис языка Python
13
4.1
Синтаксис
13 4.2
Несколько специальных случаев
13
5
Программа не работает. Что делать?
15
6
Инструкция if-elif-else, проверка истинности, трехместное выражение if/else
20
6.1
Синтаксис инструкции if
20 6.2
Проверка истинности в Python
21 6.3
Трехместное выражение if/else
21
7
Циклы for и while, операторы break и continue, волшебное слово else
23
7.1
Цикл while
23 7.2
Цикл for
23 7.3
Оператор continue
24 7.4
Оператор break
24 7.5
Волшебное слово else
24
8
Ключевые слова, модуль keyword
25
8.1
Ключевые слова
25 8.2
Модуль keyword
26
9
Встроенные функции
27
9.1
Встроенные функции, выполняющие преобразование типов
27 9.2
Другие встроенные функции
28
i

10 Числа: целые, вещественные, комплексные
31
10.1 Целые числа (int)
31 10.2 Вещественные числа (float)
34 10.3 Комплексные числа (complex)
35
11 Работа со строками в Python: литералы
37
11.1 Литералы строк
37
12 Строки. Функции и методы строк
40
12.1 Базовые операции
40 12.2 Другие функции и методы строк
41 12.3 Таблица “Функции и методы строк”
42
13 Форматирование строк. Метод format
45
13.1 Форматирование строк с помощью метода format
45
14 Списки (list). Функции и методы списков
48
14.1 Что такое списки?
48 14.2 Функции и методы списков
49 14.3 Таблица “методы списков”
49
15 Индексы и срезы
51
15.1 Взятие элемента по индексу
51 15.2 Срезы
52
16 Кортежи (tuple)
54
16.1 Зачем нужны кортежи, если есть списки?
54 16.2 Как работать с кортежами?
55 16.3 Операции с кортежами
56
17 Словари (dict) и работа с ними. Методы словарей
57
17.1 Методы словарей
58
18 Множества (set и frozenset)
60
18.1 Что такое множество?
60 18.2 frozenset
62
19 Функции и их аргументы
63
19.1 Именные функции, инструкция def
63 19.2 Аргументы функции
64 19.3 Анонимные функции, инструкция lambda
65
20 Исключения в python. Конструкция try - except для обработки исключений
66
21 Байты (bytes и bytearray)
71
21.1 Bytearray
72
22 None (null), или немного о типе NoneType
73
22.1 Эквивалент null в Python: None
73 22.2 Проверка на None
74
ii

23 Файлы. Работа с файлами.
76
23.1 Чтение из файла
77 23.2 Запись в файл
77
24 With ... as - менеджеры контекста
79
25 PEP 8 - руководство по написанию кода на Python
81
25.1 Содержание
81 25.2 Внешний вид кода
83 25.3 Пробелы в выражениях и инструкциях
87 25.4 Комментарии
90 25.5 Контроль версий
92 25.6 Соглашения по именованию
92 25.7 Общие рекомендации
97
26 Документирование кода в Python. PEP 257
102
26.1 Что такое строки документации?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 26.2 Однострочные строки документации
. . . . . . . . . . . . . . . . . . . . . . . . . . 103 26.3 Многострочные строки документации
. . . . . . . . . . . . . . . . . . . . . . . . . 103
27 Работа с модулями: создание, подключение инструкциями import и from
105
27.1 Подключение модуля из стандартной библиотеки
. . . . . . . . . . . . . . . . . . 105 27.2 Использование псевдонимов
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 27.3 Инструкция from
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 27.4 Создание своего модуля на Python
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
28 Объектно-ориентированное программирование. Общее представление
110
29 Инкапсуляция, наследование, полиморфизм
112
29.1 Инкапсуляция
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 29.2 Наследование
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 29.3 Полиморфизм
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
30 Перегрузка операторов
115
30.1 Перегрузка арифметических операторов
. . . . . . . . . . . . . . . . . . . . . . . . 117
31 Декораторы
121
31.1 Передача декоратором аргументов в функцию
. . . . . . . . . . . . . . . . . . . . 123 31.2 Декорирование методов
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 31.3 Декораторы с аргументами
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 31.4 Некоторые особенности работы с декораторами
. . . . . . . . . . . . . . . . . . . 128 31.5 Примеры использования декораторов
. . . . . . . . . . . . . . . . . . . . . . . . . 129
32 Устанавливаем python-пакеты с помощью pip
131
32.1 Установка pip
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 32.2 Начало работы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 32.3 Что ещё умеет делать pip
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
33 Часто задаваемые вопросы
133
iii

33.1 Почему я получаю исключение UnboundLocalError, хотя переменная имеет значение?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 33.2 Каковы правила для глобальных и локальных переменных в Python?
. . . . . 134 33.3 Почему анонимные функции (lambda), определенные в цикле с разными значениями, возвращают один и тот же результат?
. . . . . . . . . . . . . . . . . 135 33.4 Как организовать совместный доступ к глобальным переменным для нескольких модулей?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 33.5 Как правильнее использовать импортирование?
. . . . . . . . . . . . . . . . . . 136 33.6 Почему значения по умолчанию разделяются между объектами?
. . . . . . . . 137 33.7 Как передать опциональные или именованные параметры из одной функ- ции в другую?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 33.8 Почему изменение списка ‘y’ изменяет также список ‘x’?
. . . . . . . . . . . . . 139 33.9 Как создавать функции более высокого порядка?
. . . . . . . . . . . . . . . . . . 140 33.10 Как скопировать объект в Python?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 33.11 Как узнать доступные методы и атрибуты объекта?
. . . . . . . . . . . . . . . . . 141 33.12 Как можно узнать имя объекта?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 33.13 Какой приоритет у оператора “запятая”?
. . . . . . . . . . . . . . . . . . . . . . . . 142 33.14 Есть ли в Python эквивалент тернарного оператора ”?:” в C?
. . . . . . . . . . . . 142 33.15 Можно ли писать обфусцированные однострочники?
. . . . . . . . . . . . . . . 142 33.16 Почему -22 // 10 равно -3?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 33.17 Как можно изменить строку?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 33.18 Как использовать строки для вызова функций/методов?
. . . . . . . . . . . . . . 144 33.19 Как удалить все символы новой строки в конце строки?
. . . . . . . . . . . . . . 145 33.20 Как удалить повторяющиеся элементы в списке?
. . . . . . . . . . . . . . . . . . 145 33.21 Как создать многомерный список?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 33.22 Почему a_tuple[i] += [’item’] не работает, а добавление работает?
. . . . . . . . . 146
34 Задачи по Python
148
34.1 Простейшие арифметические операции (1)
. . . . . . . . . . . . . . . . . . . . . . 148 34.2 Високосный год (2)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 34.3 Квадрат (3)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 34.4 Времена года (4)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 34.5 Банковский вклад (5)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 34.6 Простые числа (6)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 34.7 Правильная дата (7)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 34.8 XOR-шифрование (8)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
iv

Глава
1
Возможности языка python
Так как мне часто стали задавать вопросы о том, чем может быть полезен Python, я решил написать небольшую обзорную статью на эту тему.
Вот лишь некоторые вещи, которые умеет делать python:
• Работа с xml/html файлами
• Работа с http запросами
• GUI (графический интерфейс)
Создание веб-сценариев
• Работа с FTP
• Работа с изображениями, аудио и видео файлами
• Робототехника
• Программирование математических и научных вычислений
И многое, многое другое...
Таким образом, python подходит для решения львиной доли повседневных задач, будь то резервное копирование, чтение электронной почты, либо же какая-нибудь игрушка.
Язык программирования Python практически ничем не ограничен, поэтому также мо- жет использоваться в крупных проектах. К примеру, python интенсивно применяется IT- гигантами, такими как, например, Google и Yandex. К тому же простота и универсаль- ность python делают его одним из лучших языков программирования.
1

Глава
2
Скачать Python
Сегодня мы поговорим о том, как скачать и установить python 3 на свой компьютер. Бес- платно, без регистрации и SMS :)
Установка Python на Windows
Скачивать python будем с официального сайта
. Кстати, не рекомендую скачивать интер- претатор python с других сайтов или через торрент, в них могут быть вирусы. Програм- ма бесплатная. Заходим на https://python.org/downloads/windows/
, выбираем “latest python release” и python 3.
На python 2 могут не работать некоторые мои примеры программ.
На момент написания статьи это python 3.4.1.
2

Самоучитель Python, Выпуск 0.2
Появляется страница с описанием данной версии Python (на английском). Если интерес- но - можете почитать. Затем крутим в самый низ страницы, а затем открываем “download page”.
2.1. Установка Python на Windows
3

Самоучитель Python, Выпуск 0.2
Вы увидите список файлов, которые можно загрузить. Нам нужен Windows x86 MSI
installer (если система 32-х битная), или Windows x86-64 MSI installer (если система 64-х битная). Больше из файлов нам ничего не нужно.
2.1. Установка Python на Windows
4

Самоучитель Python, Выпуск 0.2
Ждём, пока python загрузится. Затем открываем загрузившийся файл. Файл подписан
Python Software Foundation, значит, все в порядке. Пользуясь случаем, напоминаю, что не стоит открывать незнакомые exe файлы.
2.1. Установка Python на Windows
5

Самоучитель Python, Выпуск 0.2
Устанавливаем для всех пользователей или только для одного (на ваше усмотрение).
Выбираем папку для установки. Я оставляю папку по умолчанию. Вы можете выбрать любую папку на своем диске.
2.1. Установка Python на Windows
6

Самоучитель Python, Выпуск 0.2
Выбираем компоненты, которые будут установлены. Оставьте компоненты по умолча- нию, если не уверены.
2.1. Установка Python на Windows
7

Самоучитель Python, Выпуск 0.2
Ждем установки python...
Finish. Поздравляю, вы установили Python! Также в установщик python для windows встроена среда разработки IDLE. Прямо сейчас вы можете написать свою первую про- грамму
!
Установка Python на linux системы (ubuntu, linux mint и дру-
гие)
Откройте консоль (обычно ctrl+alt+t). Введите в консоли:
python3
Скорее всего, вас любезно поприветствует python 3:
2.2. Установка Python на linux системы (ubuntu, linux mint и другие)
8

Самоучитель Python, Выпуск 0.2
Python
3.4 0
(default, Apr
11 2014
,
13
:
05
:
11
)
[GCC
4.8 2
] on linux
Type
"help"
,
"copyright"
,
"credits"
or
"license"
for more information
>>>
Если это так, то можно вас поздравить: у вас уже стоит python 3. В противном случае нужно установить пакет *python3*:
sudo apt
- get install python3
Либо через mintinstaller / synaptic / центр приложений ubuntu / что вам больше нравится.
В python для linux нет предустановленной среды IDLE. Если хотите, её можно устано- вить отдельно. Пакет называется *idle3* (в более ранних версиях он может называться
python3-idle).
Однако, её установка не является обязательной. Вы можете писать в своём любимом тек- стовом редакторе (gedit, vim, emacs...) и запускать программы через консоль:
python3 path_to_file py
Теперь вы можете написать первую программу
(хотите, пишите в IDLE, хотите - в своём любимом текстовом редакторе).
2.2. Установка Python на linux системы (ubuntu, linux mint и другие)
9

Глава
3
Первая программа. Среда разработки IDLE
Сегодня мы напишем свою первую программу в среде разработки IDLE.
После загрузки и установки python открываем IDLE (среда разработки на языке Python,
поставляемая вместе с дистрибутивом).
Здесь и далее буду приводить примеры под ОС Windows, так как именно она у меня сей- час под рукой.
10

Самоучитель Python, Выпуск 0.2
Запускаем IDLE (изначально запускается в интерактивном режиме), после чего уже мож- но начинать писать первую программу. Традиционно, первой программой у нас будет
“hello world”.
Чтобы написать “hello world” на python, достаточно всего одной строки:
print
(
"Hello world!"
)
Вводим этот код в IDLE и нажимаем Enter. Результат виден на картинке:
Поздравляю! Вы написали свою первую программу на python! (
если что-то не работает
).
С интерактивным режимом мы немного познакомились, можете с ним ещё поиграться,
например, написать print
(
3
+
4
)
print
(
3
*
5
)
print
(
3
**
2
)
Но, всё-таки, интерактивный режим не будет являться основным. В основном, вы будете сохранять программный код в файл и запускать уже файл.
Для того, чтобы создать новое окно, в интерактивном режиме IDLE выберите File
→ New
File (или нажмите Ctrl + N).
11

Самоучитель Python, Выпуск 0.2
В открывшемся окне введите следующий код:
name
=
input
(
"Как Вас зовут? "
)
print
(
"Привет,"
, name)
Первая строка печатает вопрос (“Как Вас зовут? ”), ожидает, пока вы не напечатаете что- нибудь и не нажмёте Enter и сохраняет введённое значение в переменной name.
Во второй строке мы используем функцию print для вывода текста на экран, в данном случае для вывода “Привет, ” и того, что хранится в переменной “name”.
Теперь нажмём F5 (или выберем в меню IDLE Run
→ Run Module) и убедимся, что то, что мы написали, работает. Перед запуском IDLE предложит нам сохранить файл. Сохраним туда, куда вам будет удобно, после чего программа запустится.
Вы должны увидеть что-то наподобие этого (на скриншоте слева - файл с написанной вами программой, справа - результат её работы):
Поздравляю! Вы научились писать простейшие программы, а также познакомились со средой разработки IDLE. Теперь можно немного отдохнуть, а потом начать изучать python дальше. Можете посмотреть синтаксис python
,
циклы или условия
. Желаю удачи!
12

Глава
4
Синтаксис языка Python
Синтаксис языка Python, как и сам язык, очень прост.
Синтаксис
• Конец строки является концом инструкции (точка с запятой не требуется).
• Вложенные инструкции объединяются в блоки по величине отступов. Отступ может быть любым, главное, чтобы в пределах одного вложенного блока отступ был одина- ков. И про читаемость кода не забывайте. Отступ в 1 пробел, к примеру, не лучшее решение. Используйте 4 пробела (или знак табуляции, на худой конец).
• Вложенные инструкции в Python записываются в соответствии с одним и тем же шаблоном, когда основная инструкция завершается двоеточием, вслед за которым располагается вложенный блок кода, обычно с отступом под строкой основной ин- струкции.
Основная инструкция:
Вложенный блок инструкций
Несколько специальных случаев
• Иногда возможно записать несколько инструкций в одной строке, разделяя их точ- кой с запятой:
a
=
1
; b
=
2
;
print
(a, b)
13

Самоучитель Python, Выпуск 0.2
Но не делайте это слишком часто! Помните об удобочитаемости. А лучше вообще так не делайте.
• Допустимо записывать одну инструкцию в нескольких строках. Достаточно ее за- ключить в пару круглых, квадратных или фигурных скобок:
if
(a
==
1
and b
==
2
and c
==
3
and d
==
4
):
# Не забываем про двоеточие print
(
'spam'
*
3
)
• Тело составной инструкции может располагаться в той же строке, что и тело основ- ной, если тело составной инструкции не содержит составных инструкций. Ну я ду- маю, вы поняли :). Давайте лучше пример приведу:
if x
>
y:
print
(x)
Полное понимание синтаксиса, конечно, приходит с опытом, поэтому я советую вам за- глянуть в рубрику “
Примеры программ
”.
Также советую прочитать
PEP 8 — руководство по написанию кода на Python и
Докумен- тирование кода в Python. PEP 257
  1   2   3   4   5   6   7   8   9   ...   12


написать администратору сайта