Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практическое программирование на Python. Учебное пособие
.pdf
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Физический факультет
К. Ф. Лысаков
ПРАКТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ НА PYTHON
Учебное пособие
Новосибирск
2023

УДК 004.021 + 004.432.2(075)
ББК B185.29(Python)я73-1
Л886
Рецензент
доц. М. Ю. Шадрин
Лысаков, К. Ф.
Л886 Практическое программирование на Python : учеб. пособие /
К. Ф. Лысаков ; Новосиб. гос. ун-т. – Новосибирск : ИПЦ
НГУ, 2023. – 76 с.
Пособие как основной источник теоретического и практического
материала предназначено для людей, впервые приступивших
к изучению программирования. Предлагается практический подход
по
изучению основ программирования в областях физики и
математики с использованием языка Python.
УДК 004.021 + 004.432.2(075)
ББК B185.29(Python)я73-1
Рекомендовано к печати кафедрой автоматизации
физико-технических исследований ФФ НГУ
(протокол № 2 от 16.02.2022 г.)
© Новосибирский государственный
университет, 2023

ОГЛАВЛЕНИЕ
1. ВВЕДЕНИЕ..................................................................................................5
1.1. СРЕДА РАЗРАБОТКИ..................................................................................... 5
1.1.1. Interactive Shell.............................................................................5
1.1.2. Блокнот Jupyter ............................................................................6
1.1.3. PyCharm......................................................................................12
2. БАЗОВЫЕ КОНСТРУКЦИИ PYTHON...............................................14
2.1. ПЕРЕМЕННЫЕ ............................................................................................... 14
2.2. ВВОД И ВЫВОД ДАННЫХ ........................................................................ 14
2.3. ОПЕРАЦИИ СО СТРОКАМИ...................................................................... 15
2.3.1. Преобразование строки в числа ...............................................16
2.3.2. Разделение строки на части ......................................................16
2.4. УСЛОВНЫЕ ОПЕРАТОРЫ.......................................................................... 16
2.4.1. Конструкция if ...........................................................................17
2.4.2. Конструкция if – else .................................................................17
2.4.3. Конструкция if – elif – else........................................................18
2.5. ЦИКЛЫ ............................................................................................................. 19
2.6. СТРОКИ............................................................................................................ 20
2.6.1. Замена символов в строке.........................................................21
2.6.2. Индексация.................................................................................22
2.6.3. Срезы ..........................................................................................23
2.7. СПИСКИ........................................................................................................... 24
2.7.1. Генераторы списков ..................................................................25
2.7.2. Примеры работы со списком....................................................25
2.7.3. Методы списков.........................................................................26
2.8. КОРТЕЖИ......................................................................................................... 27
2.9. СЛОВАРИ......................................................................................................... 27
2.10. ВСТРОЕННЫЕ ФУНКЦИИ И ПЕРЕСЕЧЕНИЕ ИМЕН....................... 28
2.11. РАБОТА С ФАЙЛАМИ................................................................................ 28
2.11.1. Запись в файл..........................................................................29
2.11.2. Чтение из файла......................................................................29
2.12. ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ........................................................ 30
2.12.1. Аргументы функций ..............................................................30
2.12.2. Возвращаемые значения ........................................................31
2.12.3. Анонимные функции, инструкция lambda ...........................31
2.12.4. Лямбда-функция и сортировка списков ...............................32
2.13. ИСКЛЮЧЕНИЯ ............................................................................................. 32
2.14. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ................................................................... 35
2.15. MAP, FILTER И REDUCE............................................................................ 36
2.15.1. Map ..........................................................................................37
2.15.2. Filter .........................................................................................37
2.15.3. Reduce...................................................................................... 38
3

3. ИСПОЛЬЗОВАНИЕ ВНЕШНИХ БИБЛИОТЕК ...............................39
3.1. УСТАНОВКА БИБЛИОТЕК........................................................................ 39
3.2. ВЕРСИЯ БИБЛИОТЕК.................................................................................. 39
3.3. ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ ИЗ БИБЛИОТЕК................................ 39
3.4. МОДУЛЬ DECIMAL ...................................................................................... 41
3.5. БИБЛИОТЕКА NUMPY................................................................................ 42
3.5.1. Массивы .....................................................................................42
3.5.2. Случайные числа .......................................................................43
3.5.3. Математические операции........................................................44
3.5.4. Файлы .........................................................................................44
3.6. БИБЛИОТЕКА SCIPY.................................................................................... 45
3.7. БИБЛИОТЕКА SYMPY................................................................................. 46
3.7.1. Числа...........................................................................................47
3.7.2. Символы .....................................................................................47
3.7.3. Подстановка параметров...........................................................47
3.7.4. Simplify() ....................................................................................48
3.7.5. Evalf()..........................................................................................48
3.7.6. Lambdify()...................................................................................49
3.8. БИБЛИОТЕКА MATPLOTLIB..................................................................... 49
3.8.1. Pylab............................................................................................50
3.8.2. Графики Pyplot...........................................................................50
3.8.3. Гистограммы..............................................................................55
3.8.4. Круговая/секторная диаграмма ................................................56
3.9. БИБЛИОТЕКА PANDAS............................................................................... 57
3.9.1. Pandas Series...............................................................................58
3.9.2. Pandas DataFrame .......................................................................59
3.10. БИБЛИОТЕКА PYGAME ............................................................................59
3.10.1. Начало работы ........................................................................60
3.10.2.
Рисование прямоугольника ...................................................60
3.10.3. Функции для рисования.........................................................61
3.10.4. Цвета........................................................................................62
3.10.5. Обработка нажатий клавиш...................................................63
3.10.6. Часы и анимация ....................................................................64
БЛОК 1. ЗАДАЧИ НА СИНТАКСИС И КОНСТРУКЦИИ
ЯЗЫКА PYTHON..................................................................................... 66
БЛОК 2. БАЗОВЫЕ ПРАКТИЧЕСКИЕ ЗАДАЧИ ДЛЯ РЕШЕНИЯ............ 66
БЛОК 3. ОБРАБОТКА ДАННЫХ........................................................................ 70
БЛОК 4. ИНТЕРЕСНЫЕ ЗАДАЧИ...................................................................... 72
4

1. ВВЕДЕНИЕ
Данное пособие предназначено для тех, кто хочет использовать
инструмент Python для решения различных физических задач,
включая моделирование и расчеты.
Python – это высокоуровневый язык программирования с ми-
нимальным уровнем вхождения. За счет динамической типизации
и автоматического управления памятью, использование Python
представляется весьма простым, что определяет его популярность.
Особенностью Python является наличие большого количества
библиотек,
функционала, включая графику (в том числе динамическую), работу с большими данными, символьные и численные расчеты, использование machine learning и многое другое. Причем все эти библиотеки являются бесплатными, а их установка не занимает много
времени.
Поскольку данное пособие имеет целью знакомство с Python
как с инструментом, то
типовых подходов для решения распространенных задач, позволяющих достигнуть нужного результата с минимальными
усилиями.
в которых реализовано большинство необходимого
в основном предлагается рассмотрение
1.1. Среда разработки
Писать программы на Python можно несколькими способами:
онлайн, построчно, блочно, в средах разработки и так далее. Коротко
остановимся на основных.
1.1.1. Interactive Shell
Одним из самых простых (при наличии интернета) является
построчное
сайте https://www.python.org/
исполнение программ в Interactive Shell на официальном
5

Запуск Interactive Shell на официальном сайте
После запуска в появившейся консоли можно писать построчно
программы. После ввода кода и нажатия Enter происходит ее незамедлительное исполнение.
1.1.2. Блокнот Jupyter
Проект Jupyter является преемником более раннего проекта
IPython Notebook, который впервые был опубликован в качестве
прототипа в 2010 г. Хотя в Jupyter Notebooks можно использовать
разные языки программирования, мы ограничимся рассмотрением
Python.
Для того чтобы начать
работу с Jupyter Notebooks, необходимо
установить дистрибутив Anaconda. Anaconda является наиболее
широко используемым дистрибутивом Python для работы с данными
и поставляется с предустановленными наиболее популярными
библиотеками и инструментами, включая NumPy, Pandas, Matplotlib
и многие другие. Это позволит приступить к работе, без хлопот
управления установками библиотек или беспокойства о зависимостях
и проблемах установки, связанных с ОС.
6

Чтобы установить Anaconda, необходимо загрузить последнюю
версию Anaconda для Python 3 и далее следовать инструкциям
(https://www.anaconda.com/products/individual).
Рассмотрим основные шаги и особенности написания программ
в Jupyter Notebook:
1. Запуск можно осуществлять через вызов меню программ.
Запуск Jupyter Notebook
2. После запуска открывается начальное окно в браузере, через
которое осуществляется управление программами, а также
импорт и экспорт программ.
7

Стартовое окно Jupyter Notebook
3. Для написания новой программы необходимо открыть новое
окно, выбрав соответствующее меню.
Создание новое программы в Jupyter Notebook
8

4. Программа пишется в открывшемся окне.
Написание программы в Jupyter Notebook
5. Для исполнения программы нужно нажать соответствующую
кнопку «Run». При необходимости откроется окна запроса.
Запуск программы в Jupyter Notebook
9

6. При необходимости исполнение программы можно остано-
вить или перегрузить. Обратите внимание, во время исполнения программы в квадратных скобках появляется символ «*».
Управление запущенной программой в Jupyter Notebook
7. Особенности написания программ в Jupyter Notebook:
● можно писать программы блоками. При этом последующие
блоки являются зависимыми от предыдущих: все значения
переменных, их типы и контекст переносится;
● номер блока (в скобках) обозначает порядок его испол-
нения;
● возможно перевыполнение блоков, находящихся выше. При
этом порядковый номер меняется на соответствующий. На
скриншоте ниже приведен пример, когда вначале (седьмой
блок) переменной b присвоено значение 5, затем в девятом
блоке – 15, после чего мы вернулись наверх и переисполнили восьмой блок (и его номер стал десятым). Соответственно результатом выполнения десятого блока стал
вывод
значения 15.
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
