Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Язык программирования высокого уровня Python. Функции, структуры данных, дополнительные модули. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное
учреждение высшего образования
«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
Институт компьютерных технологий и информационной безопасности
В. М. Шелудько
ЯЗЫК ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
PYTHON. ФУНКЦИИ, СТРУКТУРЫ ДАННЫХ,
ДОПОЛНИТЕЛЬНЫЕ МОДУЛИ
Учебное пособие
Ростов-на-Дону – Таганрог
Издательство Южного федерального университета
2017
УДК 004.43(075)
ISBN 978-5-9275-2648-2
УДК 004.43(075)
ББК 32.973Я73
© Южный федеральный университет, 2017 © Шелудько В. М., 2017 © Оформление. Макет. Издательство Южного федерального университета, 2017
ББК 32.973Я73 Ш447
Печатается по решению кафедры безопасности информационных
технологий Института компьютерных технологий и информационной
безопасности Южного федерального университета
(протокол №8 от 10 февраля 2017 г.)
Рецензенты:
заведующий кафедрой безопасности информационных технологий,
доцент, кандидат технических наук Е. С. Абрамов
кандидат технических наук Д. В. Мордвин
Шелудько, В. М.
Ш447 Язык программирования высокого уровня Python. Функции,
структуры данных, дополнительные модули : учебное пособие / В. М. Шелудько ; Южный федеральный университет. – Ростов-на­Дону ; Таганрог : Издательство Южного федерального университе­та, 2017. – 107 с.
ISBN 978-5-9275-2648-2
В учебном пособии рассматриваются принципы разработки пользовательских процедур, структур данных и модулей на языке высокого уровня Python. Дается краткое описание основных моду­лей языка. Большое количество наглядных примеров позволит освоить основные принципы составления программ на языке Py­thon.
СОДЕРЖАНИЕ
Предисловие ……………………………………………….…………….... 4
Введение ………………………………………………………………….. 7
1. Логические компоненты программ на языках программирования высокого уровня ...…………………………………….…………………….. 8
2. Создание функций в Питон ……………………….…………………. 13
2.1. Оформление функций …………..…………….……………………. 13
2.2. Аргументы функций …………………………………………...….. 15
3. Создание структуры данных в Питон ....………………………… 18
Задания для закрепления темы «Структуры в Pythonе» …….………... 21
4. Работа с файлами в Питон …………………………….……………... 32
4.1. Открытие файла …………………………………….………………. 32
4.2. Методы для работы с файлами …………………….……………… 34
5. Модули в Питон …………………………………………..…………... 36
6. Модуль OS для работы в файловой системе ……………..…………. 38
7. Модуль Math …………………………………………….……………. 44
8. Язык регулярных выражений ………………………….…………….. 46
9. Модуль Re ………………………………………………….…………. 57
9.1. Основные методы объекта регулярных выражений ……..……….. 58
9.2. Основные функции модуля Re ……………………………..………. 61
9.3. Объекты MatchObject …………………………………….………… 62
10. Работа с датой и временем (модуль Datetime) …………….………. 64
11. Модуль Random. Генерация случайных чисел ……………………… 70
12. Графическая библиотека Tkinter ……………………………..……… 73 Заключение ……………………………………………………..………... 104 Библиографический список …………………………………..………... 105
3
ПРЕДИСЛОВИЕ
Пособие «Основы программирования на языке высокого уровня Py­thon» стоит в ряду учебных пособий, посвященных основам программи­рования на языках высокого уровня, а в частности, разработке функций, структур, объектов и модулей [15]. Также рассматриваются наиболее распространенные стандартные и дополнительные модули языка Питон, их функции и методы.
Материал пособия учитывает требования к формированию профес­сиональных компетенций специалистов в области защиты информации.
При подготовке данного учебного пособия ставились следующие за­дачи:
- рассмотреть основные принципы разработки функций, структур,
объектов и модулей на языке Питон;
- рассмотреть наиболее распространенные стандартные и дополни-
тельные модули языка Питон, их функции и методы;
- дать примеры программ, наглядно демонстрирующие основные
возможности языка Python.
Во введении обоснована актуальность темы учебного пособия.
В Главе 1 «Рекомендации по выбору и изучению обучающей литера­туры. Рекомендуемые источники информации по Pythonу» даны рекомен­дации по выбору и изучению обучающей литературы, а также приведены основные источники литературы, рекомендуемые для более глубокого изучения языка Python.
В главе Глава 2 «Общие сведения о языке программирования Python» приведена характеристика языка Python, а также краткие сведения о языке Python, философия языка.
В Главе 3 «Установка интерпретатора языка Python» описан пошаго­во процесс установки интерпретатора, запуск интерактивной оболочки, а также использование встроенного редактора IDLE.
В Главе 4 описан рекомендуемый стиль кода программ на языке Python, а также синтаксис языка в соответствии со стандартом PEP8.
Все последующие главы посвящены основам языка Python. Содержат задания для самостоятельного выполнения, предназначенные для закреп­ления пройденного материала.
В прил. 1 приведены рекомендованные сайты по теме пособия.
4
Предисловие
В заключении устанавливается взаимосвязь между материалом учеб-
ного пособия и составляющими профессиональных компетенций.
Освоение материала данного учебного пособия лежит в основе фор-
мирования у обучающихся следующих профессиональных компетенций:
- способность проводить анализ, предлагать и обосновывать выбор решений по обеспечению эффективного применения автоматизированных систем в сфере профессиональной деятельности (ПК-3);
- способность разрабатывать и анализировать проектные решения по обеспечению безопасности автоматизированных систем, систем управле­ния и средств информационной безопасностью (ПК-4).
Эти профессиональные компетенции необходимы для решения за­дач, относящихся к таким видам профессиональной деятельности в сфере информационной безопасности, как научно-исследовательская, проектно­конструкторская, контрольно-аналитическая, организационно­управленческая и эксплуатационная.
Изучение данного учебного пособия совместно с другими рекомен­дованными информационными источниками обеспечивает обучающегося возможностью приобрести следующие элементы компетенций:
Знания: технологии разработки алгоритмов и программ, методов от- ладки и решения задач на ЭВМ в различных режимах, основы объектно­ориентированного подхода к программированию:
– основные алгоритмические структуры и их применение для по­строения алгоритмов задач по их математическим моделям;
– принципы процедурного программирования;
– принципы объектно-ориентированного программирования;
– язык программирования Phyton;
– основные статические и динамические типы данных.
Умения: ставить задачу и разрабатывать алгоритм ее решения, ис- пользовать прикладные системы программирования, работать с современ­ными системами программирования, включая объектно­ориентированные:
– выполнять грамотную постановку задач, возникающих в практи-
ческой деятельности, для их решения с помощью компьютера;
– выполнять формализованное описание поставленных задач; – составлять программы на языке Python;
5
Предисловие
– выполнять отладку и тестирование программ, написанных на
языке Python, во встроенной в интерпретатор среде разработки.
Навыки: разработки и отладки программ не менее чем на одном из алгоритмических процедурных языков программирования высокого уров­ня.
Материалы, вошедшие в данное учебное, обеспечивают учебно­методической базой следующие дисциплины: «Программирование на языках высокого уровня в задачах защиты информации», «Технологии программирования на языках высокого уровня», «Сетевое программиро­вание в задачах защиты информации», «Безопасность сетей ЭВМ», а так­же для подготовки творческих и междисциплинарных курсовых проектов.
В полной мере данное учебное пособие может быть востребовано при подготовке специалистов по защите информации специальностей:
10.03.01 «Информационная безопасность», 10.05.02 «Информационная безопасность телекоммуникационных систем», 10.05.03 «Информацион­ная безопасность автоматизированных систем».
6
ВВЕДЕНИЕ
Актуальность разработки данного учебного пособия обусловлена тем, что язык программирования Python получил широкое применение всего несколько лет назад, и как следствие, существенный недостаток со­ответствующей обучающей литературы на русском языке.
Данное учебное пособие разработано и предназначено для первона­чального знакомства с базовыми основами языка высокого уровня Python, как теоретическими, так и практическими.
В учебном пособии даются рекомендации по выбору и изучению обучающей литературы, а также приведены основные источники литера­туры, рекомендуемые для более глубокого изучения языка Python. Приве­дена характеристика языка Python, а также краткие сведения о языке Python, философия языка. В учебном пособии описывается пошагово про­цесс установки интерпретатора, запуск интерактивной оболочки, а также использование встроенного редактора IDLE. Описывается рекомендуе­мый стиль кода программ на языке Python, а также синтаксис языка в со­ответствии со стандартом PEP8. Рассматриваются основные операторы, операции, функции, методы и структуры языка Python. Также даются за­дания для самостоятельного выполнения, предназначенные для закрепле­ния пройденного материала.
Учебное пособие ориентировано на студентов Института компью­терных технологий и информационной безопасности Южного федераль­ного университета, обучающихся по направлениям 10.03.01 «Информаци­онная безопасность», 10.05.02 «Информационная безопасность телеком­муникационных систем», 10.05.03 «Информационная безопасность авто­матизированных систем». Изученный материал позволит самостоятельно применять полученные знания на практике.
7
1. ЛОГИЧЕСКИЕ КОМПОНЕНТЫ ПРОГРАММ
Подход к изучению языков программирования ничем не отличается от подхода к изучению естественных языков (русский, английский и т.д). Соответственно, и основные принципы составления слов, построения фраз, предложений, текстов программ ничем не отличаются от построе­ния текстов на любом естественном языке.
В естественном языке слово состоит из морфем, фраза из слов, предложение из фраз, текст из предложений, книга из глав. Подобную аналогию можно проследить и в языках программирования: фразы и предложения строят с помощью операторов, отдельные смысловые еди­ницы – с помощью функций и объектов, набор смысловых единиц на одну тему объединяют в библиотеки (модули). То есть компьютерные про­граммы представляют из себя некий набор логических компонентов.
Рассмотрим подробнее всю иерархию логических компонентов ком­пьютерных программ.
Операторы
Операторы – это простейшие элементы программы, которые позво­ляют производить действия с данным.
Для того, чтобы запрограммировать логику (перевести с русского языка на язык программирования высокого уровня) любого линейного алгоритма достаточно трех операторов, которые составляют основу каж­дого языка программирования (рис. 1):
То есть, с помощью оператора присваивания можно задать началь­ные условия задачи. Условный оператор (оператор ветвления) позволяет выбрать то или иное действие, в зависимости от заданных условий или начальных значений и является аналогом конструкции русского языка «если…, то…, иначе». Циклические операторы позволяют для каждого действия или набора действий задать, сколько раз их необходимо выпол­нить, и избавляют программистов от многократной записи одних и тех же действий для разных значений [1].
8
1. Логические компоненты программ
Рис. 1. Операторы языков программирования
Так, например, простая задача: «напишите программу, которая в по­следовательности, состоящей из n натуральных чисел, определяет макси­мальное число, кратное 5» легко перекладывается на любой язык про­граммирования с помощью трех основных операторов. Ниже представле­но решение этой задачи для языка программирования высокого уровня Python 3.X:
n = int(input()) # функция ввода данных
max = 0 # оператор присваивания
for i in range(n) : # оператор цикла
a = int(input()) # функция ввода данных
if (a > max) and (a % 5 = =0) : # условный опе-
ратор
max = a # оператор присваивания
print(max) # функция ввода данных
Таким образом, все действия программы, задающие ее логику, реали­зованы с помощью трех основных операторов, а ввод и вывод данных осуществляется с помощью вызова стандартных функций языка.
9
1. Логические компоненты программ
Обозначим условно понятие «Оператор» так:
Функции и процедуры
Программный код, представленный выше, написан с помощью не-
скольких операторов и вызова функций ввода/вывода.
Функция – это фрагмент кода, оформленный по определенным в каждом языке программирования правилам, и решающий одну задачу, который можно вызывать из любого места программы. Функции в общем виде состоят из набора операторов и позволяют уменьшить избыточность программного кода и повысить его структурированность.
Функциональное программирование – это стиль написания про­граммы, в котором задача разбивается на подзадачи, и каждая подзадача реализуется с помощью отдельной функции.
В языке Python понятие «процедура» отсутствует, поэтому это поня­тие рассматривать не будем.
Поскольку, каждая функция – это решение отдельной подзадачи, то реализуется с помощью представленных выше операторов присваивания, поэтому в общем виде представим функцию, как набор операторов.
Обозначим условно понятие «Функция»
Ф
О
Функция
…
О
О
Классы
Класс – это описание реального объекта, включающее набор харак-
теристик объекта и действий, которые может осуществлять объект, а так­же над объектом и его характеристиками.
В программировании характеристики объекта задаются с помощью набора операторов присваивания, а действия реализуются, как функции управления этими переменными. Переменные класса в Pythonе называют­ся атрибутами, а функции – методами.
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]