Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Технологии программирования и компьютерный практикум на языке Python

Покупка
Основная коллекция
Артикул: 808082.01.99
Доступ онлайн
315 ₽
В корзину
Пособие содержит теоретический материал, а также варианты индивидуальных и проектных заданий, связанных как с основными разделами языка программирования Python (функции, строки, списки и т. п.), так и с использованием распространенных библиотек научного программирования — Numpy, Matplotlib, Pandas. В качестве средства выполнения заданий предполагается использование среды Jupyter Notebook. Предназначено для студентов бакалавриата укрупненной группы 01.03.00 «Математика и механика». Оно также может быть полезно учителям информатики для организации самостоятельной работы в старших классах средней школы.
Карякин, М. И. Технологии программирования и компьютерный практикум на языке Python : учебное пособие / М. И. Карякин, К. А. Ватульян, Р. М. Мнухин ; Южный федеральный университет. - Ростов-на-Дону ; Таганрог : Издательство Южного федерального университета, 2022. - 242 с. - ISBN 978-5-9275-4108-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/2057604 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ 
РОССИЙСКОЙ ФЕДЕРАЦИИ 
Федеральное государственное автономное образовательное  
учреждение высшего образования 
«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» 
 
 
 
                                                                                                                    

 

М. И. Карякин 
К. А. Ватульян 
Р. М. Мнухин 
 
Технологии программирования  
и компьютерный практикум 
на языке Python 

 
Учебное пособие 

 
 
 
 
 
 
                                             Ростов-на-Дону – Таганрог 
Издательство Южного федерального университета 
2022 

УДК 519.6+004.43+510.5 
ББК  22.193+32.973 
    К27 
 
Печатается по решению кафедры теории упругости 
Института математики, механики и компьютерных наук им. И.И. Воровича 
Южного федерального университета (протокол № 6 от 18 апреля 2022 г.) 
 

 

Рецензенты: 

заведующий кафедрой «Теоретическая и прикладная механика» 

Донского государственного технического университета, 

доктор физико-математических наук, доцент А.Н. Соловьев; 

 

доцент кафедры теории упругости Южного федерального университета, 

кандидат физико-математических наук, О.В. Явруян 

 
 
 
 
Карякин, М.И. 
К27 
 
Технологии программирования и компьютерный практикум на языке Python : учебное пособие / М. И. Карякин,     
К. А. Ватульян, Р. М. Мнухин ; Южный федеральный университет. – Ростов-на-Дону ; Таганрог : Издательство Южного федерального университета, 2022. – 242 с. 
ISBN 978-5-9275-4108-9 
 
Пособие содержит теоретический материал, а также варианты индивидуальных и проектных заданий, связанных как с основными разделами языка программирования Python (функции, строки, списки и т. п.), так и с использованием распространенных библиотек научного программирования 
— Numpy, Matplotlib, Pandas. В качестве средства выполнения заданий 
предполагается использование среды Jupyter Notebook. 
Предназначено для студентов бакалавриата укрупненной группы 
01.03.00 «Математика и механика». Оно также может быть полезно учителям 
информатики для организации самостоятельной работы в старших классах 
средней школы. 
УДК 519.6+004.43+510.5 
ББК 22.193+32.973 

 
ISBN 978‐5‐9275‐4108‐9 
 
© Южный федеральный университет, 2022 
© Карякин М. И., Ватульян К. А., Мнухин Р. М., 2022 
 

Содержание

Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6

1
Основы программирования на Python . . . . . . . . . . . .
8

1.1
Базовые элементы программы
. . . . . . . . . . . . . . . .
8

1.2
Переменные и значения . . . . . . . . . . . . . . . . . . . .
13

1.3
Ввод и вывод данных
. . . . . . . . . . . . . . . . . . . . .
18

1.4
Библиотека математических функций . . . . . . . . . . . .
20

1.5
Условный оператор . . . . . . . . . . . . . . . . . . . . . . .
23

1.6
Цикл while . . . . . . . . . . . . . . . . . . . . . . . . . . .
28

1.7
Цикл for
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
32

2
Индивидуальная работа «Функции и строки» . . . . . . .
40

2.1
Функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40

2.1.1
Основные сведения и примеры . . . . . . . . . . . .
40

2.1.2
Модули
. . . . . . . . . . . . . . . . . . . . . . . . .
44

2.1.3
Аргументы функции: дополнительные вопросы . . .
47

2.1.4
Области видимости переменных
. . . . . . . . . . .
51

2.1.5
Рекурсия
. . . . . . . . . . . . . . . . . . . . . . . .
57

2.2
Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63

2.2.1
Основные сведения и примеры . . . . . . . . . . . .
63

2.2.2
Escape-последовательности
. . . . . . . . . . . . . .
67

2.2.3
f-строки . . . . . . . . . . . . . . . . . . . . . . . . .
69

2.2.4
Функции и методы строк
. . . . . . . . . . . . . . .
73

2.3
Табулирование функции . . . . . . . . . . . . . . . . . . . .
76

2.3.1
Постановка задачи . . . . . . . . . . . . . . . . . . .
76

2.3.2
Образец выполнения задания . . . . . . . . . . . . .
79

2.4
Рекурсия
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
85

2.4.1
Постановка задачи . . . . . . . . . . . . . . . . . . .
85

2.4.2
Образец выполнения задания . . . . . . . . . . . . .
88

2.5
Работа со строками . . . . . . . . . . . . . . . . . . . . . . .
92

2.5.1
Постановка задачи . . . . . . . . . . . . . . . . . . .
92

2.5.2
Образец выполнения задания . . . . . . . . . . . . .
95

2.6
Оформление отчета
. . . . . . . . . . . . . . . . . . . . . . 100

3

Индивидуальная работа «Численное исследование графика функции» . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.1
Списки и кортежи . . . . . . . . . . . . . . . . . . . . . . . 106
3.1.1
Определение и примеры списков . . . . . . . . . . . 106

3.1.2
Способы создания списков . . . . . . . . . . . . . . . 111

3.1.3
Основные методы списков . . . . . . . . . . . . . . . 113

3.1.4
Кортежи . . . . . . . . . . . . . . . . . . . . . . . . . 115

3.2
Основные определения . . . . . . . . . . . . . . . . . . . . . 117

3.3
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . 118

3.4
Образец выполнения задания . . . . . . . . . . . . . . . . . 123

3.5
Графики исследуемых функций
. . . . . . . . . . . . . . . 129

4
Индивидуальная работа «Создание и обработка матриц
стандартными средствами языка Python» . . . . . . . . . 140
4.1
Матрицы и их реализация . . . . . . . . . . . . . . . . . . . 140

4.2
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . 144

4.3
Образец выполнения задания . . . . . . . . . . . . . . . . . 151

4.4
Материалы к заданию . . . . . . . . . . . . . . . . . . . . . 156

5
Проектное задание «Вычисления с использованием пакета NumPy» . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.1
Пакет NumPy . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.1.1
Основные сведения о пакете . . . . . . . . . . . . . . 162

5.1.2
Простая демонстрация возможностей
. . . . . . . . 164

5.1.3
Массивы и их создание
. . . . . . . . . . . . . . . . 166

5.1.4
Операции с массивами . . . . . . . . . . . . . . . . . 171

5.2
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . 176

5.3
Варианты заданий . . . . . . . . . . . . . . . . . . . . . . . 177

5.4
Образец выполнения задания . . . . . . . . . . . . . . . . . 183

6
Индивидуальная работа «Основные возможности пакета Matplotlib»
. . . . . . . . . . . . . . . . . . . . . . . . . . . 191

6.1
Знакомство с Matplotlib . . . . . . . . . . . . . . . . . . . . 191

6.2
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . 192

6.3
Методические указания . . . . . . . . . . . . . . . . . . . . 197

4

Проектное задание «Обработка и анализ данных в Pandas» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
7.1
Знакомство с Pandas . . . . . . . . . . . . . . . . . . . . . . 219

7.2
Данные для анализа . . . . . . . . . . . . . . . . . . . . . . 223

7.3
Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . 224

7.4
Образец выполнения проектного задания . . . . . . . . . . 225

Список литературы
. . . . . . . . . . . . . . . . . . . . . . . . . 236

Предисловие

Язык программирования Python в последнее время стал одним из са
мых распространенных и популярных языков программирования. Уже

несколько лет подряд именно Python возглавляет рейтинг языков про
граммирования, составляемый IEEE Spectrum [34]. В конце 2021 года

Python переместился на первую строку популярного рейтинга Tiobe [33].

Области применения языка Python в современном мире чрезвычайно

широки: на нем сегодня «говорят» специалисты в области математиче
ского моделирования, физики, астрономии, химии, биологии, биоинфор
матики, лингвистики, машинного обучения, анализа данных, статистики

и других разделов естественных и инженерных наук. Подобная попу
лярность неизбежно приводит к тому, что ежегодно появляется боль
шое количество учебников и учебных пособий, посвященных изучению

как языка в целом, так и его различных подразделов (библиотек, обла
стей применения и т. д.). Работы [5,8,14–16] представляют лишь малую

часть огромного списка публикаций, позволяющих новичкам погрузить
ся в увлекательный мир современного программирования.

Важным элементом изучения языка является практическая работа

обучающихся. Именно в процессе самостоятельной работы можно до
статочно быстро познакомиться с мощью и гибкостью Python, уверенно

овладеть основными и продвинутыми навыками его использования, что

позволит впоследствии успешно применять его для решения различных

задач профессиональной деятельности в сфере современной прикладной

математики и программирования. Настоящее учебное пособие как раз и

предназначено для организации самостоятельной работы: содержащиеся

в нем задачи могут быть использованы в качестве индивидуальных или

групповых проектных заданий, как относящихся к «классическим» ос
новам программирования, так и связанных с использованием основных

6

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

Первый раздел данного пособия содержит базовые сведения о языке

Python. Краткая теоретическая информация есть и в остальных разде
лах, посвященных описанию заданий по отдельным темам или библио
текам. Тем не менее, авторы настоятельно рекомендуют обучающимся

не ограничиваться этими сведениями, а параллельно с выполнением за
даний знакомиться и с более подробными материалами. В этом смысле

отдельного упоминания заслуживает учебник К. Хилла [14], материал

которого достаточно полно покрывает не только собственно язык, но и

используемые в данном пособии библиотеки NumPy, Matplotlib, Pandas.

Общая структура разделов пособия, содержащих варианты заданий,

приблизительно одинакова. Во вводном подразделе приводятся те или

иные сведения о языковых структурах или библиотеках, важных для

выполнения задания. Далее формулируется само задание (в случае инди
видуальных работ — по 30 вариантов, для проектных заданий — порядка

10 вариантов), а затем приводится возможный образец выполнения одно
го из этих вариантов, во всех случаях он имеет номер «ноль». В разделе,

посвященном пакету Matplotlib, вместо прямого решения одного из вари
антов содержится целый ряд дополнительных вопросов и мини-заданий,

анализ которых позволит обучающимся овладеть основными навыками

создания научных иллюстраций и успешно выполнить любой вариант

индивидуального задания.

Предполагается, что обучающиеся готовят по каждому заданию отчет,

представляющий собой файл, созданный в среде Jupyter Notebook [23].

Краткие сведения о возможностях форматирования, предоставляемых

используемым в этой среде языком разметки Markdown, приведены в

разделе 2.6. Отметим также, что для набора математических формул в

отчете должны быть использованы возможности системы компьютерной

верстки LATEX.

7

Основы программирования на Python

1.1
Базовые элементы программы

Программа на языке Python представляет собой последовательность

определений и команд. Определения обрабатываются и команды вы
полняются в специальной среде (оболочка, shell). Они могут быть на
браны прямо в оболочке или сохранены в файле, который впоследствии

может быть загружен в оболочку и выполнен.

В данном пособии все примеры будут продемонстрированы средой

специального вида — Jupyter Notebook. Она позволяет выполнять и со
хранять не только тексты программ, но и блоки отформатированного

текста, формулы, изображения, поэтому очень удобна как для интер
активных презентаций, так и для представления отчетов о выполнен
ных работах. В то же время эта среда полностью сохраняет интерак
тивность, присущую базовой оболочке IDLE, входящей в состав дистри
бутива Python. Если в ячейке ввода команд (она помечена символами

In []:) ввести какое-то арифметическое выражение и «выполнить» его,

нажав кнопку ▶ Run на панели задач или комбинацию клавиш Shift +

Enter на клавиатуре, то под ячейкой будет сразу отображен результат

введенной операции:

In [1]: 5 + 3

Out[1]: 8

Цифра внутри квадратных скобок — это счетчик операций, он увели
чивается на единицу каждый раз после выполнения ячейки с командой

или набором команд (кодом программы). Команда (или оператор) —

инструкция интерпретатору осуществить то или иное действие.

Суть работы программы — манипулирование с данными, обработка

объектов, содержащих данные. Каждый такой объект имеет важную

8

характеристику — тип, определяющий, что за данные он содержит, и

какие операции к нему применимы.

Основная классификация объектов:

◦ Скалярные (их нельзя разделить на составные части).

◦ Нескалярные (составные, имеющие внутреннюю структуру, к кото
рой можно получить доступ). Например, строка состоит из несколь
ких символов, а комплексное число — из вещественной и мнимой

части.

Скалярные объекты Python:

◦ int — целые числа (5, -23, 1234567890).

◦ float — действительные числа (3.14, 9.81, 1.2e-5).

◦ bool — используется для представления двух логических значений:

True (истина) и False (ложь).

◦ NoneType — у этого типа данных есть только одно значение, кон
станта None. Эту константу обычно используют для обозначения

того, что конкретное значение отсутствует.

Сразу отметим, что объекты целого типа языка Python могут хранить

значения с очень большим количеством значащих цифр — оно ограниче
но только размерами оперативной памяти компьютера. Вычислим, для

примера значение выражения 2150:

In [2]: 2**150

Out[2]: 1427247692705959881058285969449495136382746624

Встроенная функция type служит для определения типа объекта.

In [3]: type(3)

Out[3]: int

In [4]: type(3.14)

Out[4]: float

9

Выражения.

С помощью знаков операций объекты объединяются в выраже
ния, значение каждого из которых представляет собой объект опреде
ленного типа. Синтаксис простейшего выражения:

<объект> <знак операции> <объект>

Арифметические операции с числовыми объектами.

a + b — сумма. Если оба числа — целые, то результат — объект int,

в остальных случаях результат имеет тип float.

a - b — разность.

a * b — произведение.

a / b — частное. В Python 3 тип у частного всегда float, независимо

от типов входящих в него объектов.

a // b — результат деления нацело.

a % b — остаток от деления.

В двух предыдущих операциях, как правило, a и b имеют тип int и

результат — тоже int. Нужно помнить, однако, что эти операции при
менимы и к вещественным числам.

a**b — возведение в степень, ab. Если оба числа — целые, то результат

— объект int, в остальных случаях — float.

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

деления *, /, //, %. Их приоритет одинаков, они выполняются слева

направо. Завершают вычисления операции сложения и вычитания +, -,

которые тоже имеют одинаковый приоритет.

Правило выполнения слева направо операций одинакового приорите
та является общим для языка Python за одним исключением: операции

возведения в степень выполняются справа налево. Поэтому выражение

2**3**2 имеет смысл 232, то есть 29.

10

Доступ онлайн
315 ₽
В корзину