Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на языке Python. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
МИНОБРНАУКИ РОССИИ
————————————
Федеральное государственное автономное
образовательное учреждение высшего образования
«Омский государственный технический университет»
Е. Т. Гегечкори
ПРОГРАММИРОВАНИЕ
НА ЯЗЫКЕ PYTHON
Учебное текстовое электронное издание
локального распространения
Рекомендовано редакционно-издательским советом
Омского государственного технического университета
Омск
Издательство ОмГТУ
2023
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Сведения об издании: 1, 2 © ОмГТУ, 2023 ISBN 978-5-8149-3617-2
УДК 004.4(075) ББК 32.973я73
Г27
Рецензенты:
С. Н. Чуканов, д-р техн. наук, профессор,
профессор кафедры «Цифровые технологии» СибАДИ;
Т. А. Мызникова, канд. техн. наук, доцент,
доцент кафедры «Информационная безопасность» ОмГУПС
Г
егечкори, Е. Т. Программирование на языке Python : учеб. пособие / Е. Т. Гегеч-
кори ; Минобрнауки России, Ом. гос. техн. ун-т. – Омск : Изд-во ОмГТУ, 2023. – 1 CD-ROM (1,43 Мб). – Систем. требования: процессор с частотой 1,3 ГГц и выше ;
256 Мб RAM и более ; свободное место на жестком диске 300 Мб и более ; Windows XP и выше ; разрешение экрана 1024×768 и выше ; CD/DVD-ROM дисковод ; Adobe Acrobat Reader 5.0 и выше. – Загл. с титул. экрана. – ISBN 978-5-8149-3617-2.
Представлены основные типы объектов в языке Python, порядок их создания
и работы с ними, а также функции как основной процедурный элемент языка. Приве­дены методы работы с модулями и дополнительными объектно-ориентированными инструментами языка Python – классами. Даны описания моделей и инструкций обра­ботки исключений, а также обзор инструментов разработки, используемых при созда­нии крупных программ.
Предназначено для студентов, обучающихся по направлениям 09.03.03 и 09.04.03 «Прикладная информатика», осваивающих дисциплины «Интеллектуальные инфор­мационные системы» и «Интеллектуальные информационные технологии» соответ­ственно, а также может быть полезно для студентов других направлений.
едактор Т. А. Москвитина
Р
Компьютерная верстка Е. В. Макарениной
Д
ля дизайна этикетки использованы материалы
из открытых интернет-источников
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Сводный темплан 2023 г. Подписано к использованию 04.04.23. Объем 1,43 Мб.
© ОмГТУ, 2023
2
ОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ ..........................................................................................................7
I. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ ..............................................................8
1. Начало работы ......................................................................................................8
2. Основные понятия ...............................................................................................9
Ввод и вывод данных ........................................................................................ 10
Типы данных...................................................................................................... 13
Константы и переменные ................................................................................. 13
Арифметические операторы ............................................................................ 15
Операторы сравнения ....................................................................................... 16
Логические операторы ...................................................................................... 16
Условные инструкции ...................................................................................... 17
Инструкции ........................................................................................................ 20
3. Функции ............................................................................................................. 21
Определение функций ...................................................................................... 21
Встроенные функции ........................................................................................ 23
Многократное использование функций ......................................................... 25
Типы параметров функции .............................................................................. 25
Область видимости ........................................................................................... 26
Обработка исключений .................................................................................... 28
Строки документации ....................................................................................... 30
4. Контейнеры ........................................................................................................ 31
Методы ............................................................................................................... 31
Списки ................................................................................................................ 31
Кортежи .............................................................................................................. 35
Словари .............................................................................................................. 37
Контейнеры внутри контейнеров .................................................................... 40
5. Операции со строками ...................................................................................... 42
6. Циклы ................................................................................................................. 50
Цикл for .............................................................................................................. 51
Цикл while .......................................................................................................... 54
Операторы break и continue .............................................................................. 56
Функция Enumerate ........................................................................................... 58
Вложенные циклы ............................................................................................. 60
Настройка функции print() ............................................................................... 63
3
7. Модули ................................................................................................................ 69
8. Файлы .................................................................................................................. 74
Запись в файлы ................................................................................................... 74
Использование конструкции with .................................................................... 76
Чтение из файлов ............................................................................................... 76
CSV-файлы ......................................................................................................... 78
II. ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ
ПРОГРАММИРОВАНИЕ (ООП) ............................................................................. 80
9. Парадигмы программирования ........................................................................ 80
Состояние ........................................................................................................... 80
Процедурное программирование ..................................................................... 80
Функциональное программирование............................................................... 81
Объектно-ориентированное программирование ............................................ 81
10. Базовые понятия ООП ..................................................................................... 87
Наследование ..................................................................................................... 88
Полиморфизм ..................................................................................................... 90
Абстракция ......................................................................................................... 93
Инкапсуляция ..................................................................................................... 93
Композиция ........................................................................................................ 96
11. Дополнительные понятия ООП ...................................................................... 97
Как работают переменные ................................................................................ 98
Ключевое слово is .............................................................................................. 99
Константа None ................................................................................................ 100
Классы – это объекты ...................................................................................... 100
Переменные класса и переменные экземпляра класса ................................ 101
Приватные переменные................................................................................... 104
Методы переопределения ............................................................................... 105
Функция super .................................................................................................. 106
Переопределение встроенных методов ......................................................... 107
12. Создание игр .................................................................................................. 109
Карты ................................................................................................................. 109
Колода ............................................................................................................... 112
Игрок ................................................................................................................. 113
Игра ................................................................................................................... 113
Игра «War» ....................................................................................................... 115
4
III. ВВЕДЕНИЕ В ИНСТРУМЕНТЫ ПРОГРАММИРОВАНИЯ ..................... 118
13. Bash ................................................................................................................. 118
Запуск Bash ...................................................................................................... 118
Использование Bash ........................................................................................ 118
Относительные и абсолютные пути .............................................................. 119
Навигация ........................................................................................................ 121
Флаги ................................................................................................................ 122
Редактор vim .................................................................................................... 122
Команда touch .................................................................................................. 124
Просмотр файлов командой less .................................................................... 124
Пользователи ................................................................................................... 124
Разрешения ...................................................................................................... 125
Программы Bash .............................................................................................. 126
Скрытые файлы ............................................................................................... 127
Переменные окружения ................................................................................. 127
Переменная окружения $PATH. .................................................................... 128
Вертикальная черта (пайп) ............................................................................. 129
Команда cat ...................................................................................................... 129
Последние команды ........................................................................................ 130
Быстрые перемещения .................................................................................... 130
Вкладка «Завершение» ................................................................................... 131
Функция wildcard (подстановочный знак) ................................................... 131
Другие инструменты ....................................................................................... 132
14. Регулярные выражения ................................................................................ 132
Настройка ......................................................................................................... 132
Простое совпадение ........................................................................................ 133
Игнорирование регистра ................................................................................ 134
Вывод только конкретных совпадений слов ................................................ 134
Совпадение в начале и в конце ...................................................................... 134
Поиск совпадений с несколькими символами ............................................. 135
Повторение ...................................................................................................... 135
Диапазон .......................................................................................................... 136
Экранирование (escaping) ............................................................................... 136
Регулярные выражения в Python ................................................................... 137
5
15. Менеджеры пакетов ....................................................................................... 139
Pip ...................................................................................................................... 139
16. Управление версиями .................................................................................... 141
Репозитории...................................................................................................... 142
Помещение и извлечение данных .................................................................. 144
Пример помещения данных ............................................................................ 145
Пример извлечения данных ............................................................................ 147
Откат версий ..................................................................................................... 147
Команда git diff ................................................................................................ 148
Другой запрос на включение .......................................................................... 148
IV. Введение в информатику .................................................................................. 150
17. Структуры данных и алгоритмы .................................................................. 150
Что такое алгоритмы и структуры данных? ................................................. 150
Нотация Big-O .................................................................................................. 150
Оператор деления по модулю......................................................................... 151
Сортировка методом пузырька....................................................................... 152
Поисковый алгоритм ....................................................................................... 153
Рекурсия ............................................................................................................ 156
Абстрактные типы данных ............................................................................. 159
Узлы .................................................................................................................. 160
Стеки ................................................................................................................. 160
Связанные списки ............................................................................................ 162
Массивы ............................................................................................................ 164
Бинарные деревья ............................................................................................ 165
Поиск в ширину и в глубину .......................................................................... 165
Хэш-таблицы .................................................................................................... 167
ЗАКЛЮЧЕНИЕ ........................................................................................................ 170
БИБЛИОГРАФИЧЕСКИЙ СПИСОК .................................................................... 172
6

ПРЕДИСЛОВИЕ

Данное пособие подготовлено в соответствии с государственным образо-
вательным стандартом высшего образования РФ и направлено на обучение про­граммированию на определенном языке – Python. Использование языка Python для примеров обусловлено тем обстоятельством, что это весьма востребован­ный и понятный язык, даже если вы никогда не изучали программирование. Основной упор делается на том, чему, как правило, книги по программирова­нию не уделяют должного внимания.
Изучение языка программирования – лишь часть весьма обширной пробле-
мы; чтобы оказаться на приемлемом с профессионалами программирования уровне, понадобятся и другие навыки. Пособие предназначено для того, чтобы обрисовать новичкам диапазон того, что им необходимо знать.
Как правило, книги по программированию предлагают читателям лишь осно­вы программирования на Python либо на других языках, но не указывают направление дальнейшего совершенствования. Вполне закономерно у читате­лей подобной литературы возникает естественный вопрос, куда двигаться дальше, так как очевидно – изучение упомянутой литературы совершенно не­достаточно, чтобы работать программистом даже на начальном уровне. Данное пособие в какой-то мере отвечает на этот вопрос.
Изложенный метод программирования полностью противоположен тому, ко­торый обычно практикуется при изучении информатики, и поэтому пособие структурировано, следуя этому подходу. Традиционно ученики проводят много времени, изучая теорию, но было бы более эффективно вначале научиться про­граммировать, а затем изучить теорию. Поэтому в пособии теория информати­ки затрагивается в минимальном объеме, хотя она важна, но становится еще ценнее, когда появляется опыт программирования.
7

I. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ

1. Начало работы

Python – это легко читаемый язык программирования с открытым исход-
ным кодом. Он поставляется с программой IDLE (сокращение от Integrated Development and Learning Environment – интегрированная среда разработки и обучения).
Если щёлкнуть мышью по ярлыку IDLE, то откроется интерактивная обо-
лочка. Непосредственно в нее можно ввести операторы и она выведет результа­ты. После приглашения >>> введите:
print("Hello, World!")
После нажатия клавиши Enter интерактивная оболочка выведет строку
Hello, World!
Программу можно сохранить для повторного использования. Запустите
приложение IDLE, щелкните мышью по пункту File (Файл), затем выберите команду New Fil e (Новый файл). В открывшемся текстовом редакторе с пустым белым фоном можно писать свой код и сохранять его. При запуске кода вывод появится в окне интерактивной оболочки. Перед повторным запуском кода нужно сохранить все изменения. Введите код программы «Hello, World!» в тек­стовый редактор.
Снова щелкните мышью по пункту File (Файл), выберите команду Sa ve As
(Сохранить как). Присвойте файлу имя hello_world.py и сохраните его. Имена файлов Python должны заканчиваться расширением .py. После сохранения фай­ла щелкните мышью по пункту Run (Запустить) и выберите команду Run
Module (Запустить модуль) или нажмите клавишу F5. Строка Hello, World! будет выведена в интерактивной оболочке, как если бы вы набрали эту
строку кода в оболочке.
8

2. Основные понятия

→
Попробуем вывести строку Hello, World! сто раз. Заметим, что отступ
перед командой print должен составлять ровно четыре пробела:
for i in range(100): print("Hello, World!")
Строка Hello, World! будет выведена сто раз. >> Hello, World!
>> Hello, World! >> Hello, World! …
Если в примере содержится вывод, но отсутствует слово print, нужно
вводить код в оболочку. Если в примере есть слово print, нужно запускать код из файла .py.
Для создания комментариев в Python используется символ #.
# Комментарий
print("Hello, World!") >> Hello, World!
Комментировать код надо в особых случаях. Вот пример уместного ком-
ментария:
import math a = 3 b = 4 d = math.sqrt(a**2 + b**2) # длина диагонали
Заметим, что если в коде неправильно использованы отступы, то будет вы-
дана ошибка IndentationError.
# Ошибочный код
x = 2
y = 1 >> IndentationError: unexpected indent
Удобно ссылаться на каждый фрагмент кода по номеру строки, в которой
он находится. В IDLE можно выбрать команду меню Edit
9
Go to Line (Прав-
ка → Перейти к строке), чтобы перейти к определенной строке в программе. За один раз в оболочку можно вводить лишь одну строку кода, нельзя копиро­вать и вставлять несколько строк.
Иногда фрагмент кода слишком длинный и не вмещается в одну строку.
Код, помещенный в тройные кавычки, круглые, квадратные и фигурные скобки, может быть продолжен на следующей строке.
print("""Это очень очень очень
очень очень очень длинная строка кода.""")
Чтобы продолжить код на следующей строке, можно использовать символ
обратного слеша (\).
print\
("""Это очень очень очень очень очень очень длинная строка кода.""")
Оба эти примера выводят одно и то же. Обратный слеш позволил помес­тить код ("""Это очень очень очень очень очень очень длинная строка кода.""") и print на отдельных строках, что без него сделать бы- ло бы нельзя.
В языках программирования типа Python существуют слова со специаль­ным значением, называемые ключевыми словами. Ключевое слово for уже встречалось. Перед ключевым словом print указывается отступ в четыре про­бела. Это делается затем, чтобы Python мог определить, когда начинаются и за­канчиваются блоки кода. Отступ содержит четыре пробела. Программа выдаст ошибку, если ошибочно использовать неправильный отступ, например, три или пять пробелов.

Ввод и вывод данных

Не требует особых доказательств тот факт, что ввод и вывод данных – важнейший компонент любой программы.
В Python для вывода (по умолчанию на экран) существует функция
print(), где в скобках через запятую пишется то, что необходимо вывести.
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]