Язык Python в медицинских системах искусственного интеллекта. Ч.1. Введение в программирование на языке Python. Учебное пособие
.pdfМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Национальный исследовательский ядерный университет «МИФИ»
К.А. Либерис, С.А. Жиделёва, М.Д. Макаров, В.Г. Никитаев, О.В. Нагорнов
ЯЗЫК PYTHON
В МЕДИЦИНСКИХ СИСТЕМАХ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Часть 1: Введение в программирование на языке Python
Под редакцией профессора В.Г. Никитаева
Москва 2024
УДК 004.43:004.8:61(075.8) ББК 32.973.26-018.1я7 Я 41
Язык Python в медицинских системах искусственного интеллекта. Ч. 1. Введение в программирование на языке Python: Учебное пособие /
К.А. Либерис, С.А. Жиделёва, М.Д. Макаров, В.Г. Никитаев, О.В. Нагорнов / Под ред. В.Г. Никитаева. – М.: НИЯУ МИФИ, 2024. – 92 с.
В первой части учебного пособия рассмотрены основы языка программирования Python, все необходимые конструкции и библиотеки. Разобраны решения практических задач.
Пособие написано на основе актуальных учебных программ и предназначено для обучения в бакалавриате и магистратуре по направлениям подготовки «Биотехнические системы и технологии».
Данное пособие также предназначено для студентов технических вузов, которые хотят развиваться в области медицинских изображений.
Рецензенты: профессор, д-р физ.-мат. наук В.А. Галкин профессор, д-р физ.-мат. наук А.М. Загребаев
ISBN 978-5-7262-3117-4 |
© Национальный исследовательский |
|
ядерный университет «МИФИ», 2024 |
ОГЛАВЛЕНИЕ
1. ВВЕДЕНИЕ ......................................................................................... |
7 |
1.1. Основы программирования ...................................................... |
7 |
1.1.1. История развития программирования. Терминология. ........ |
7 |
1.1.2. Значение программирования в современной жизни:............ |
8 |
1.2. Языки программирования: обзор и классификация............ |
8 |
1.2.1. Низкоуровневые языки............................................................ |
8 |
1.2.2. Высокоуровневые языки ......................................................... |
8 |
1.2.3. Компилируемые и интерпретируемые языки........................ |
8 |
1.2.4. Обзор популярных языков программирования..................... |
9 |
1.3. Алгоритмы и их роль в программировании.......................... |
9 |
1.3.1. Свойства алгоритмов............................................................... |
9 |
1.3.2. Представление алгоритмов ..................................................... |
9 |
1.3.3. Примеры простых алгоритмов................................................ |
9 |
1.4. Почему язык Python?................................................................ |
10 |
1.4.1. История создания:.................................................................. |
10 |
1.4.2. Особенности языка: ............................................................... |
11 |
1.5. Обработка изображений в современной науке.................... |
12 |
1.5.1. Роль обработки изображений в современной науке........... |
12 |
1.5.2. Применение в технических науках....................................... |
13 |
1.6. Обзор популярных библиотек для обработки изображений
Python...................................................................................................... |
14 |
1.6.1. Pillow....................................................................................... |
14 |
1.6.2. OpenCV.................................................................................... |
14 |
1.6.3. Matplotlib и SciPy: .................................................................. |
14 |
2. PYTHON БАЗОВЫЕ ЗНАНИЯ............................................................ |
15 |
2.1. Переменные и типы данных.................................................... |
15 |
2.1.1. Переменные и присваивание................................................. |
15 |
3 |
|
2.1.2. Числовые типы данных.......................................................... |
15 |
2.1.3. Строки и операции с ними .................................................... |
16 |
2.1.4. Булевы значения и логические операции............................. |
16 |
2.2. Операторы и выражения ......................................................... |
16 |
2.2.1. Арифметические операторы.................................................. |
16 |
2.2.2. Операторы сравнения ............................................................ |
17 |
2.2.3. Логические операторы........................................................... |
17 |
2.2.4. Приоритет операторов........................................................... |
17 |
2.3. Условные конструкции............................................................ |
18 |
2.3.1. Оператор If.............................................................................. |
18 |
2.3.3. Вложенные условия............................................................... |
18 |
2.4. Циклы.......................................................................................... |
19 |
2.4.1. Цикл for................................................................................... |
19 |
2.4.2. Цикл while............................................................................... |
19 |
2.4.3. Управление циклом: break и continue................................... |
19 |
2.5. Структуры данных.................................................................... |
20 |
2.5.1. Списки..................................................................................... |
20 |
2.5.2. Кортежи................................................................................... |
20 |
2.5.3. Словари................................................................................... |
20 |
2.5.4. Множества .............................................................................. |
21 |
2.6. Функции...................................................................................... |
21 |
2.6.1. Определение и вызов функции............................................. |
21 |
2.6.2. Параметры и аргументы........................................................ |
21 |
2.6.3. Рекурсия.................................................................................. |
22 |
2.7. Практика..................................................................................... |
22 |
2.7.1. Примеры решения задач........................................................ |
22 |
2.7.2. Теоретические вопросы......................................................... |
25 |
2.7.3. Переменные и типы данных.................................................. |
25 |
2.7.4. Циклы...................................................................................... |
26 |
2.7.5. Функции.................................................................................. |
27 |
4 |
|
3. УГЛУБЛЕННОЕ ИЗУЧЕНИЕ PYTHON ............................................. |
29 |
3.1. Модули и пакеты....................................................................... |
29 |
3.1.1. Стандартные модули Python ................................................. |
29 |
3.1.2. Создание собственных модулей ........................................... |
30 |
3.1.3. Пакеты и их структура........................................................... |
30 |
3.2. Работа с файлами....................................................................... |
31 |
3.2.1. Открытие и закрытие файлов................................................ |
31 |
3.2.2. Работа с CSV и JSON файлами............................................. |
33 |
3.3. Обработка исключений............................................................ |
34 |
3.3.1. Понятие исключений............................................................. |
34 |
3.3.2. Блоки try, except, finally......................................................... |
34 |
3.4. Объектно-ориентированное программирование................. |
36 |
3.4.1. Классы и объекты................................................................... |
36 |
3.4.2. Наследование.......................................................................... |
36 |
3.4.3. Полиморфизм ......................................................................... |
37 |
3.5. Генераторы и итераторы.......................................................... |
38 |
3.5.1. Итераторы в Python................................................................ |
38 |
3.5.2. Генераторы и yield ................................................................. |
39 |
3.5.3. Генераторные выражения...................................................... |
39 |
3.6. Декораторы................................................................................. |
40 |
3.6.1. Понятие декораторов............................................................. |
40 |
3.6.2. Создание собственных декораторов..................................... |
40 |
3.7. Практика..................................................................................... |
42 |
3.7.1. Теоретические вопросы......................................................... |
42 |
3.7.2. Модули и пакеты.................................................................... |
42 |
3.7.3. Работа с файлами.................................................................... |
43 |
3.7.4. Обработка исключений.......................................................... |
43 |
3.7.5. Объектно-ориентированное программирование................. |
44 |
3.7.6. Генераторы и итераторы........................................................ |
45 |
3.7.7. Декораторы............................................................................. |
45 |
5 |
|
4. РАБОТА С БИБЛИОТЕКАМИ В PYTHON......................................... |
47 |
4.1. os.................................................................................................... |
49 |
4.2. SYS................................................................................................ |
53 |
4.3. Random......................................................................................... |
54 |
4.4. Datetime........................................................................................ |
56 |
4.5. Numpy........................................................................................... |
60 |
4.6. Math.............................................................................................. |
65 |
4.7. Pandas........................................................................................... |
68 |
4.8. Mathplotlib................................................................................... |
73 |
4.9. Практика..................................................................................... |
83 |
4.9.1. Теоретические вопросы......................................................... |
83 |
4.9.2. Библиотека OS........................................................................ |
84 |
4.9.3. Библиотека SYS...................................................................... |
85 |
4.9.4. Библиотека Random ............................................................... |
85 |
4.9.5. Библиотека Datetime .............................................................. |
86 |
4.9.6. Библиотека Numpy................................................................. |
86 |
4.9.7. Библиотека Math..................................................................... |
87 |
4.9.8. Библиотека Pandas.................................................................. |
88 |
4.9.9. Библиотека Matplotlib............................................................ |
88 |
6
1. ВВЕДЕНИЕ
Цели изучения:
●ознакомиться с основами программирования и понять роль Python в современных технологиях.
●понять значение и важность обработки изображений в технических и медицинских областях.
●подготовиться к дальнейшему изучению языка Python и его применению в обработке изображений.
Ожидаемые навыки:
●понимание фундаментальных концепций программирования и алгоритмов.
●представление о возможностях языка Python в сфере обработки изображений.
●умениеустановитьинастроить рабочуюсреду дляразработки на Python.
1.1.Основы программирования
1.1.1. История развития программирования. Терминология.
Программирование — это процесс создания алгоритмов и их реализацииввидепрограмм,которыемогутбытьвыполненыкомпьютером.Это способ общения с машиной на языке, который она понимает, чтобы заставить ее выполнять определенные задачи.
История:
1940-е годы: Появление первых электронных компьютеров и машинных языков программирования.
1950-1960-е годы: Разработка первых высокоуровневых языков, та-
ких как Fortran и COBOL.
1970-1980-е годы: Появление языков C и Pascal, развитие структурного программирования.
1990-е годы и далее: Распространение объектно-ориентированных языков (C++, Java) и интерпретируемых языков (Python, JavaScript).
7
1.1.2. Значение программирования в современной жизни:
Программирование стало неотъемлемой частью многих сфер деятельности:
Медицина: Анализ данных пациентов, разработка программного обеспечения для медицинского оборудования.
Инженерия: Моделирование и симуляция инженерных систем. Наука: Обработка больших объемов данных, автоматизация исследований.
Бизнес: Создание приложений для управления процессами и анализом данных.
1.2.Языки программирования: обзор и классификация
1.2.1. Низкоуровневые языки
Машинный код: Бинарный код, непосредственно выполняемый процессором.
Ассемблер: Язык, представляющий машинные инструкции в более читаемом виде.
1.2.2. Высокоуровневые языки
Процедурные языки: C, Pascal. Объектно-ориентированные языки: Java, C++, Python. Функциональные языки: Haskell, Lisp.
1.2.3. Компилируемые и интерпретируемые языки
Компилируемые языки: Исходный код преобразуется в машинный код с помощью компилятора перед выполнением программы. Примеры: C, C++.
Интерпретируемые языки: Исходный код выполняется строка за строкой интерпретатором во время исполнения программы. Примеры: Python, Ruby.
8
1.2.4. Обзор популярных языков программирования
Python: Простота синтаксиса, широкие возможности, активное сообщество.
Java: Портируемость, используется для разработки корпоративных приложений.
C#: Разработан Microsoft, используется для создания приложений под
Windows.
JavaScript: Основной язык веб-программирования для создания интерактивных страниц.
1.3. Алгоритмы и их роль в программировании
Алгоритм — это упорядоченная последовательность конечных действий, направленных на решение определенной задачи.
1.3.1. Свойства алгоритмов
Дискретность: Разделение процесса на отдельные шаги. Определенность: Каждое действие точно описано и понятно. Конечность: Алгоритм должен завершаться за конечное число шагов. Результативность: Алгоритм должен приводить к решению задачи. Массовость: Возможность применения алгоритма к различным наборам данных.
1.3.2. Представление алгоритмов
Псевдокод: Текстовое описание алгоритма, близкое к языку программирования.
Блок-схемы: Графическое представление последовательности действий с использованием стандартных символов.
1.3.3. Примеры простых алгоритмов
Сортировка массива чисел: Алгоритмы пузырьковой сортировки, быстрой сортировки.
Поиск наибольшего общего делителя (НОД): Алгоритм Евклида.
Решение квадратных уравнений: Вычисление корней по формуле.
9
1.4. Почему язык Python?
1.4.1. История создания:
Язык программирования Python был создан Гвидо ван Россумом (Guido van Rossum) в конце 1980-х годов, а первая версия была выпущена в 1991 году. На тот момент ван Россум работал в Центре математики и информатики (CWI) в Нидерландах. Он стремился создать язык, который был бы простым в изучении и использовании, но при этом мощным и гибким.
Предыстория
Гвидо ван Россум участвовал в разработке языка ABC, который был предназначен для обучения программированию. Однако ABC не получил широкого распространения, и ван Россум решил создать новый язык, учитывающий недостатки предшественника.
Название языка
Название “Python” не связано со змеями. Ван Россум назвал язык в честь британской комедийной группы “Monty Python”, шоу которой он был большим поклонником. Он хотел, чтобы название было коротким, запоминающимся и несколько таинственным.
Развитие Python
•1991 год: Выпуск первой версии Python 0.9.0. В ней были реализованы такие ключевые особенности, как классы с наследованием, обработка исключений, функции и модули.
•1994 год: Выпуск Python 1.0, в котором появились функциональные инстру-
менты программирования — lambda, map, filter и reduce.
•2000 год: Выпуск Python 2.0, который принес значительные улучшения, включая сборку мусора с подсчетом ссылок и поддержку Unicode. В этом же году был создан Python Software Foundation (PSF), некоммерческая организация, ответственная за развитие языка.
•2008 год: Выпуск Python 3.0. Эта версия не была полностью обратно совместима с Python 2.x, что вызвало длительный переходный период в сообществе разработчиков.
Python сегодня
10
