Similar presentations:
Основы программирования на Python. Мультимедийное сопровождение лекций
1.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. А.Н. Косыгина (ТЕХНОЛОГИИ. ДИЗАЙН. ИСКУССТВО)»
(ФГБОУ ВО «РГУ им. А.Н. Косыгина»)
_____________________________________________________________________________________________________
Захаркина С.В.
Основы программирования на Python.
Мультимедийное сопровождение лекций
Учебное пособие
Допущено к изданию редакционно-издательским советом университета в качестве электронного учебного пособия
для подготовки бакалавров по направлениям
09.03.01 Информатика и вычислительная техника, 09.03.02 Информационные системы и технологии,
15.03.06 Мехатроника и робототехника
Объем 4,47 МБ Тираж 10
Редакционно-издательский отдел ФГБОУ ВО «РГУ им. А.Н. Косыгина»
115035, Москва, ул. Садовническая, 33, стр. 1
тел./ факс: 8-495-811-01-01 доб. 1099
e-mail: riomgudt@mail.ru
Москва
ФГБОУ ВО «РГУ им. А.Н. Косыгина», 2024
Copyright © 2024 ФГБОУ ВО «РГУ им. А.Н. Косыгина»
All Rights Reserved
Copyright © 2024 Захаркина С.В.
All Rights Reserved
ISBN 978-5-00181-603-4
2.
УДК 004.42ББК 32.973.2
З-38
З-38 Захаркина С.В. Основы программирования на Python. Мультимедийное сопровождение лекций: учебное пособие – М.: ФГБОУ ВО
«РГУ им. А.Н. Косыгина», 2024. – 4,47 МБ
Электронное учебное издание, предназначенное для представления теоретического материала с использованием компьютера и
мультимедийного проектора преподавателями высших учебных заведений, будет полезно студентам при самостоятельном изучении
предмета. Визуальный ряд в виде банка слайдов-заготовок изображений разработан в среде Power Point.
Мультимедийное сопровождение лекций предназначено для обучающихся по направлениям подготовки 09.03.01 Информатика и
вычислительная техника, 09.03.02 Информационные системы и технологии и 15.03.06 Мехатроника и робототехника всех форм обучения и
будет использовано при изучении дисциплин «Основы программирования», «Алгоритмизация и скриптовые языки программирования»,
«Основы программирования робототехнических систем».
Минимальные системные требования: ПЭВМ, работающая под управлением Windows; оперативная память – 512 Мб; необходимо на
винчестере – 512 Мб; операционные системы- WindowsVista/ Windows 7/ Windows 8/Windows 10/ Windows 11; дополнительные программные
средства - AdobeAcrobat.
Работа подготовлена на кафедре Автоматики и промышленной электроники ФГБОУ ВО «РГУ им. А.Н. Косыгина».
Copyright © 2024 ФГБОУ ВО «РГУ им. А.Н. Косыгина»
All Rights Reserved
Copyright © 2024 Захаркина С.В.
All Rights Reserved
3.
Лекция 1Язык программирования
4.
Основные языки программирования5.
Области, в которых применяется языкпрограммирования Python
6.
Выполнение программ7.
Установка Python и pip на WindowsСкачать
официальный
установщик можно с сайта python.org
по ссылке https://python.org/.
8.
Запускаем установщик PythonНеобходимо активировать «Add Python X.Y to PATH» при установке. Это нужно, чтобы в
дальнейшему инсталлятора Python был доступ к командной стоке.
9.
Подтверждаем, что Python был установленправильно
Откроем командную строку и убедимся, что python3 доступен.
Чтобы открыть терминал в Windows:
• Если у вас Windows 8 и выше нажмите кнопку «Поиск» (значок лупы рядом с кнопкой «Пуск»), в
панели поиска наберите «Выполнить» и запустите найденную программу.
• Если у вас Windows версии ниже 8 нажмите кнопку «Пуск» и выберите «Выполнить».
Окно программы "Выполнить" можно также вызвать с помощью сочетания клавиш Win+R.
В появившемся диалоговом окне программы "Выполнить" наберите слово cmd и нажмите
Enter. Запустится терминал.
Затем наберите python - должен запуститься интерактивный интерпретатор. Если команда
python не запустила интерпретатор – попробуйте python3.
10.
Интерактивный режим и первая программаПосле установки Python открываем IDLE (среда разработки на языке Python, поставляемая вместе с
дистрибутивом). После запуска IDLE (изначально запускается в интерактивном режиме) появится приглашение к вводу
(>>>).
Команды выполняются построчно: после
нажатия <Enter>, интерпретатор выполняет команду и
выводит. Это удобно, когда пользователь изучает
программирование или тестирует небольшую часть кода.
Ведь если работать на компилируемом языке, то
пришлось бы сначала написать код на исходном языке
программирования, затем скомпилировать, и уже потом
запустить исполняемый файл на выполнение.
Удобнее сохранить код в файл и выполнять уже
файл. Такой режим работы называется скриптовый.
11.
Алфавит и словарь языкаИмена (констант, переменных и других объектов):
не служебные слова;
состоят из букв, цифр и символа подчеркивания;
Первым символом является буква или символ подчеркивания;
прописные и строчные буквы РАЗЛИЧАЮТСЯ!
Правильные имена
x
velichina
zzz
polnaja_summa
s25
_k1
oshibka
Неправильные имена
polnaja summa - содержится
символ (пробел)
2as - начинается с цифры
Domby&Son - содержится
символ &
and – служебное слово языка
Желательно давать переменным «говорящие» имена
12.
КомментарииКомментарии могут быть
• однострочными, тогда они начинаются с символа #
• многострочными
13.
Арифметические операции14.
На языке Python вычислить значение y при x равном 1 можно следующим образом:Эта программа выведет значение y, которое равно 19.
Рассмотрим, как выполняется вычисление пошагово:
1. Переменной x присваивается значение 1.
2. Вычисляется выражение 3 * 6, которое равно 18.
3. К значению переменной x добавляется результат вычисления 3 * 6, что дает 19.
4. Значение переменной y выводится в консоль.
15.
Встроенные функции16.
Библиотека mathМодуль math содержит часто используемые математические функции. Загрузка модулей в Python осуществляется с помощью
оператора import.
1 способ: загрузить всё содержимое модуля глобально
from math import *
t = sin (pi /6)
v = log (e)
print(t, v)
С помощью этого способа можно обращаться к функциям, лежащим в math, не используя math.sin.
2 способ подойдет в случае необходимости подключения двух, трёх и более модулей. Ведь может возникнуть ситуация, когда в
разных модулях содержатся функции с одинаковыми названиями, но с разными действиями.
import math
t = math .sin ( math .pi /6)
v = math .log ( math .e)
print(t, v)
3 способ заключается в создании псевдонима с помощью ключевого слова as:
import matplotlib . pyplot as plt
plt . plot (x)
17.
Встроенные функции mathmath.ceil(x)
Находит ближайшее целое число большее, чем x.
math.fabs(x)
Находит абсолютное значение числа.
math.floor(x)
Находит ближайшее целое число меньшее, чем x.
18.
Вывод данных в консольДля вывода данных в консоль используется функция print.
По умолчанию, для разделения элементов в функции print используется пробел.
Для замены разделителя необходимо использовать параметр sep функции print.
>>> print('A','B','C', sep='\n')
A
B
C
19.
Функция print>>> print('A','B','C', sep='\n')
A
B
C
20.
Ввод данных с клавиатурыДля считывания вводимых с
клавиатуры данных используется
функция input().
Для сохранения данных в переменной
используется следующий синтаксис.
Если считывается с клавиатуры целое число, то
строку, получаемую с помощью функции input(),
можно передать сразу в функцию int().
Для вывода строки-приглашения,
используйте ее в качестве аргумента
функции input().
21.
Основные типыданных
ЛЕКЦИЯ 2
22.
Основные типы данныхВстроенные типы данных
Простые
Составные
Числа
Логические переменные
Неизменяемые
Изменяемые
Строки
Списки
Кортежи
Словари
Множества
23.
Типы данных PYTHONЧисловые типы:
int: целые числа
`float`: числа с плавающей точкой
complex: комплексные числа
Последовательности:
list: изменяемый список элементов
`tuple`: неизменяемый список элементов
range: диапазон чисел
Множества:
set: неупорядоченное множество уникальных элементов
Словари:
dict: неупорядоченная коллекция пар "ключ-значение"
Логический тип:
bool: логическое значение (True или False)
Тип "Нет значения":
None: специальное значение, обозначающее отсутствие
значения
24.
Пользовательские типы данныхПомимо встроенных типов данных, Python также позволяет создавать собственные типы данных с помощью
классов. Классы позволяют определять новые типы объектов с пользовательскими атрибутами и методами.
Пример создания пользовательского типа данных:
Этот класс определяет тип данных Person, который имеет
два атрибута: name и age. Он также имеет два метода:
get_name() и get_age(), которые возвращают имя и возраст
объекта Person соответственно.
Теперь можно получить доступ к атрибутам и методам объекта person:
print(person.get_name()) # Выведет "John Doe"
print(person.get_age()) # Выведет 30
25.
Объект NoneОбъект None является единственным значением специального типа NoneType, который используется для
того, чтобы подчеркнуть отсутствие значения. Важно отметить, что при преобразовании None к типу bool всегда
получается False.
Переменная со значением None может пригодиться, когда необходимо отличать её от нуля. Например,
обозначим некоторой переменной доход от продаж. Он будет равен нулю, если мы ничего не заработали, и None,
если даже не начали продавать.
В условиях сравнения можно проверять, что некоторая переменная является None:
Важно отметить, что мы проверяем равенство переменной income объекту None с помощью оператора is.
Это идиоматичный способ проверки соответствия переменной объекту None в Python.
Писать if income == None неидиоматично в Python, потому что в Python оператор == можно
переопределить с помощью магических методов, о которых будет сказано в дальнейшем.
Вы часто увидите None в именованных аргументах функций или методах классов как значение по
умолчанию --- это обычно применяется тогда, когда аргумент является не обязательным --- функция или метод будут
работать и тогда, когда аргумент явным образом не передали при вызове. Также часто этим значением
инициализируют атрибуты экземпляров классов, чтобы потом в нужный момент переопределить каким-то
значением.
26.
СтрокиСтроки в Python представляют собой последовательности символов Юникода. Они
заключаются в одинарные или двойные кавычки
\n - перевод на новую строку
\t - знак табуляции
\\ - наклонная черта влево
\' - символ одиночной кавычки
\" - символ двойной кавычки
27.
Преобразование числа в строкуПреобразование строки в число осуществляется с помощью int() или float()
Узнать номер (код) символа - с помощью функции ord(). Получить символ по числовому
коду - chr()
28.
Базовые операции над строками29.
1. Сложение.3. Функция len()
2. Умножение.
4. Доступ по индексу.
К символам строки можно получить доступ по
индексам. Первый символ имеет индекс 0, а
последний - `len(string) - 1`.
30.
5. Срезы.Срезы позволяют получить подстроку из данной строки.
```python
substring = my_string[start:end]
```
где `start` - индекс первого символа подстроки (включительно), а `end` - индекс первого символа после подстроки
(исключительно).
```python
substring = my_string[0:5] # "Hello"
substring = my_string[6:] # "world!"
31.
6. Оператор in.Возвращает True, если элемент в составе строки встречается и False, если нет:
7. Функции min и max.
32.
Форматирование строк1-ый способ:
'Лень — главное достоинство программиста. (Larry Wall)'
2-ой способ:
И ещё один (возможно, самый
удобный) способ форматирования строк,
доступный начиная
с версии Python 3.6:
'Преждевременная оптимизация — корень всех зол. (Donald Knuth)'
33.
Методы строкPython предоставляет множество полезных встроенных методов для работы со строками, таких как:
* `upper()`: возвращает строку в верхнем регистре
* `lower()`: возвращает строку в нижнем регистре
* `title()`: возвращает строку с заглавной первой буквой в каждом слове
* `split()`: разбивает строку на список подстрок, разделенных пробелами
* `join()`: объединяет список подстрок в одну строку, разделенную указанным разделителем
34.
Логический (булевский) типЛогический тип в Python представлен двумя значениями:
* True (истина)
* False (ложь)
Логические значения используются для представления условий и принятия решений в программах
Python.
Логические значения можно создавать явно с помощью ключевых слов `True` и `False`:
my_bool = True
35.
Логические операторыОператоры сравнения:
• >,
• <,
• ==,
• ! =,
• >=,
• <=.
36.
В Python есть три основных логических оператора:* `and`: возвращает `True`, если оба операнда истинны, и `False` в противном случае.
* `or`: возвращает `True`, если хотя бы один операнд истинный, и `False` в противном случае.
* `not`: возвращает противоположное логическое значение операнда.
x=5
y = 10
print(x > 0 and y > 5) # True
print(x > 10 or y > 15) # True
print(not x == 10) # True
37.
Логические значения можно комбинировать для создания более сложных логическихвыражений. Например, следующее выражение проверяет, является ли число `x`
положительным и четным:
is_positive_and_even = (x > 0) and (x % 2 == 0)
38.
Условный оператор ifОператор if в Python используется для создания условных операторов, которые позволяют выполнять
разные действия в зависимости от истинности или ложности условия.
39.
Операторы if могут быть вложены друг в друга для создания более сложных условий.В этом примере, если x больше 0, будет проверено,
является ли x четным или нечетным. Если x четное, будет
выведено сообщение "x is positive and even", в противном
случае будет выведено сообщение "x is positive and odd".
Если x не больше 0, будет выведено сообщение "x is nonpositive".
40.
Оператор elifОператор elif используется для проверки нескольких условий последовательно. Он является сокращением
от "else if".
В этом примере, если x больше 0, будет выведено
сообщение "x is positive". Если x равен 0, будет выведено
сообщение "x is zero". Если x меньше 0, будет выведено
сообщение "x is negative".
Оператор `else` является необязательным и может быть опущен, если не требуется выполнять
никаких действий, когда условие ложно.
Оператор elif может использоваться несколько раз перед оператором else.
41.
Условный оператор if42.
СпискиСписки в Python представляют собой изменяемые последовательности элементов
любого типа. Они заключаются в квадратные скобки.
[159 , 152 , 140 , 128 , 113]
[15.9 , 15.2 , 14.0 , 128. , 11.3]
[’Даша’, ’Катя’, ’Ксюша’]
[’Саратов’, ’Астраханская’, 104 , 18]
[[1 , 0, 0], [0, 1, 0], [0, 0, 1]]
#список целых чисел
#список вещественных чисел
#список строк
#смешанный список
#список списков
К элементам списка можно получить доступ по индексам. Первый элемент имеет индекс 0, а последний `len(list) - 1`.
first_element = my_list[0] # 1
last_element = my_list[-1] # True
43.
44.
Срезы позволяют получить подсписок из данного списка. Синтаксис:sublist = my_list[start:end]
45.
Метод copyCсылкf на список
46.
Методы списка47.
48.
49.
Функции для списковСтандартные функции
len
len(mylist)
sum
подсчитывает сумму элементов списка, если все они числового типа
range
позволяет сформировать диапазон значений целых чисел
В самом общем случае range принимает 3 аргумента: начало диапазона, конец (всегда берётся не
включительно) и шаг.
sorted()
возвращает новый список, отсортированный по убыванию
min и max
находят максимальный и минимальный элементы списка.
50.
Оператор in, позволяющий узнать, принадлежит ли элемент списку51.
КортежиКортежи в Python** представляют собой неизменяемые последовательности элементов
любого типа. Они заключаются в круглые скобки.
52.
Создание кортежейmy_tuple = (1, 2, 3, "Hello", True)
Доступ к элементам кортежа
К элементам кортежа можно получить доступ по индексам. Первый элемент имеет индекс 0, а
последний - `len(tuple) - 1`.
first_element = my_tuple[0] # 1
last_element = my_tuple[-1] # True
Срезы кортежей
Срезы позволяют получить подкортеж из данного кортежа. Синтаксис:
subtuple = my_tuple[start:end]
subtuple = my_tuple[1:3] # (2, 3)
subtuple = my_tuple[2:] # (3, "Hello", True)
53.
>>> A=(1, 2, 3)>>> B=list(A)
>>> B
[1, 2, 3]
>>> C=tuple(B)
>>> C
(1, 2, 3)
можно использовать кортежи, чтобы присваивать значение
нескольким переменным сразу:
>>> v=('f',5,True)
>>> (x,y,z)=v
>>> x
'f'
>>> y
5
>>> z
True
54.
Встроенные методы кортежейPython предоставляет несколько полезных встроенных методов для работы с кортежами, таких как:
* `tuple.count()`: возвращает количество вхождений элемента в кортеж
* `tuple.index()`: возвращает индекс первого вхождения элемента в кортеж
**Пример:**
count = my_tuple.count(2) # Возвращает количество вхождений 2 в кортеж
index = my_tuple.index("Hello") # Возвращает индекс первого вхождения "Hello" в кортеж
55.
Сравнение списков и кортежей* Списки являются изменяемыми, а кортежи - неизменяемыми.
* Списки могут содержать любые типы данных, включая списки и кортежи, в то время как кортежи
могут содержать только неизменяемые типы данных, такие как числа, строки и кортежи.
* Списки обычно используются для хранения данных, которые необходимо изменять, в то время
как кортежи обычно используются для хранения данных, которые не должны изменяться.
56.
СловариСловари в Python представляют собой неупорядоченные коллекции пар "ключзначение". Они заключаются в фигурные скобки.
57.
Создание словарей:my_dict = {"name": "John Doe", "age": 30, "city": "New York"}
Доступ к значениям словаря:
К значениям словаря можно получить доступ по ключам. Ключами могут быть строки, числа или
кортежи.
name = my_dict["name"] # John Doe
age = my_dict["age"] # 30
58.
59.
Встроенные методы словарейPython предоставляет множество полезных встроенных методов для работы со словарями, таких как:
`dict.keys()`: возвращает список ключей словаря
dict.values(): возвращает список значений словаря
`dict.items()`: возвращает список пар "ключ-значение" словаря
dict.get(): возвращает значение, связанное с заданным ключом, или значение по умолчанию, если ключ
отсутствует
60.
МножестваМножества (set) в Python –представляют собой
неупорядоченные коллекции уникальных элементов. Они
заключаются в фигурные скобки.
61.
Способы создания множеств62.
Добавление и удаление элементов множестваЭлементы можно добавлять в множество с помощью метода add().
Элементы можно удалять из множества с помощью метода remove().
63.
64.
Встроенные методы множествPython предоставляет несколько полезных встроенных методов для работы со множествами, таких как:
`set.union()`: объединяет два множества
set.intersection(): возвращает пересечение двух множеств
`set.difference()`: возвращает разность двух множеств
set.issubset(): проверяет, является ли одно множество подмножеством другого
65.
ЦиклыЛЕКЦИЯ 3
66.
Цикл while67.
Пример : вывод первых n чисел Фибоначчи. Это ряд чисел, в котором каждое последующеечисло равно сумме двух предыдущих
68.
69.
Моржовый операторЗначение 15 присваивается num. Затем возвращается то же значение, которое становится
аргументом для функции print. Таким образом, выводится 15.
70.
Моржовый оператор. ПримерА теперь перепишем эту программу с использованием моржового оператора:
71.
Цикл for72.
Для строк73.
Функция rangeСоздает последовательность (диапазон) целых чисел
для создания диапазона чисел необходимо использовать
цикл for
74.
Тоже самое можно сделать:Диапазоны и списки:
75.
break и continueДва похожих оператора, которые можно встретить и в других языках программирования.
•break — прерывает цикл и выходит из него;
•continue — прерывает текущую итерацию и переходит к следующей.
В случае continue
происходит похожая
ситуация, только
прерывается лишь одна
итерация, а сам же цикл
продолжается.
цикл, дойдя до числа 45 и вернув истину
в условном выражении, прерывается и
заканчивает свою работу
76.
Сумма чисел в строке:Результат:
Инструкция continue приводит к переходу к
следующему шагу цикла, т.е. все команды, которые
находятся после continue, будут проигнорированы.
77.
elseЭта часть напрямую связана с оператором break и выполняется лишь тогда, когда выход из цикла
был произведен НЕ через break.
78.
Подходы при создании списков79.
Списковое включение (List Comprehension)Списковое включение — это встроенный в Python механизм генерации списков. У него только
одна задача — это построить список. Списковое включение строит список из любого итерируемого типа,
преобразуя (фильтруя) поступаемые значения.
В списковом включении можно задавать условие для выбора значения из диапазона (например,
исключить значение 4):
80.
Функция randint генерируетслучайное число из заданного
диапазона
81.
82.
Использование моржового оператора в генераторахсписка
Генерировать список res из значений, превышающих 1, и полученных при
целочисленном делении на 2 элементов списка lst:
83.
Некоторые алгоритмические приёмыНеобходимо вычислить значение выражения 1! + 2! + · · · + n!
Вычисление «в лоб»
84.
Некоторые алгоритмические приёмыРекуррентные соотношения
85.
Некоторые алгоритмические приёмыСчётчик событий
86.
Некоторые основные алгоритмические приёмыПоиск первого вхождения
Конструкция else, относящаяся к циклу.
87.
Обработка исключенийОбработка исключений в Python позволяет обрабатывать ошибки и исключения, возникающие во
время выполнения программы.
88.
где:`try`: блок кода, который может привести к исключению
except Exception1 as e1: блок обработки исключения Exception1, переменная e1 будет содержать экземпляр
исключения
`except Exception2 as e2`: блок обработки исключения `Exception2`, переменная `e2` будет содержать
экземпляр исключения
...: дополнительные блоки обработки исключений (необязательно)
`else`: блок кода, который будет выполнен, если исключений не возникло (необязательно)
finally: блок кода, который будет выполнен независимо от того, возникло исключение или нет
(необязательно)
89.
Несколько exceptБлоки `except` можно использовать для обработки нескольких исключений, указав их в скобках,
разделенных запятыми.
Если исключение не обработано в блоках except, оно будет передано дальше по стеку вызовов.
Блок `else` будет выполнен только в том случае, если исключений не возникло.
Блок finally всегда будет выполнен, независимо от того, возникло исключение или нет.
90.
Finally91.
Функции в PythonЛЕКЦИЯ 4
92.
Функции в программированииФункции в Python представляют собой именованные блоки кода, которые можно многократно
вызывать и которые могут принимать параметры и возвращать значения.
Синтаксис:
def имя_функции (параметры):
"""Докстрока (документация функции)"""
# Тело функции
return значение
где:
* `имя_функции` - имя функции
* `параметры` - параметры, которые принимает функция (необязательно)
* `Докстрока` - строка документации, описывающая функцию и ее поведение (необязательно)
* `Тело функции` - код, который будет выполнен, когда функция будет вызвана
* `значение` - значение, возвращаемое функцией (необязательно)
93.
94.
Обязательные и необязательные аргументы**Обязательные аргументы функции** в Python - это аргументы, которые должны быть переданы
при вызове функции. Если какой-либо обязательный аргумент не указан, будет выдана ошибка.
**Необязательные аргументы функции** - это аргументы, которые не являются обязательными и
могут иметь значения по умолчанию. Если необязательный аргумент не указан при вызове функции,
ему будет присвоено значение по умолчанию.
* Обязательные аргументы должны быть указаны перед
необязательными.
* Если необязательный аргумент не указан, ему будет
присвоено значение по умолчанию.
* Если указаны как обязательный, так и необязательный
аргумент с одинаковым именем, будет использоваться
значение обязательного аргумента.
def Degree (x, a):
f = x**a
return f
def Degree (x, a =2):
f = x**a
return f
>>> Degree (3, 4)
81
95.
Именованные аргументы96.
Произвольное количество аргументов97.
Локальные и глобальные переменныеЛокальные переменные объявляются внутри функции и
доступны только из этой функции. Они существуют только
во время выполнения функции и уничтожаются после
завершения функции.
Глобальные переменные объявляются вне любой функции
и доступны из любой точки программы. Они существуют на
протяжении всего выполнения программы.
>>> def mathem (a, b):
a = a/2
b = b+10
print(a+b)
>>> num1 = 100
>>> num2 = 12
>>> mathem (num1 , num2 )
72.0
>>> num1
>>>100
>>> num2
12
>>> a
Traceback ( most recent call last ):
File "<pyshell #10 >", line 1, in <module >
a
NameError : name ’a’ is not defined
98.
Доступ к глобальным переменным из функций:Чтобы получить доступ к глобальной переменной из функции, необходимо использовать ключевое
слово global. Это сообщает интерпретатору Python, что вы хотите использовать глобальную
переменную, а не локальную.
Синтаксис:
99.
Изменение глобальных переменных из функций:Чтобы изменить значение глобальной переменной из функции, необходимо присвоить ей новое
значение после объявления ее как глобальной.
Синтаксис:
Изменение глобальных переменных из функций следует использовать с осторожностью, поскольку
это может привести к побочным эффектам и ошибкам.
Рекомендуется избегать использования глобальных переменных, если это возможно, и вместо
этого использовать локальные переменные и параметры функций.
100.
Рекурсивный вызов функции**Рекурсивный вызов функции** - это когда функция вызывает саму себя. Это мощный инструмент,
который может быть использован для решения различных задач, таких как обход деревьев, поиск в глубину и
вычисление факториалов.
**Как работает рекурсия:**
* Функция вызывает саму себя с другими аргументами.
* Вызов рекурсии продолжается до тех пор, пока не будет достигнуто базовое условие, которое
останавливает рекурсию.
* После того, как базовое условие достигнуто, функция начинает возвращаться из своих рекурсивных
вызовов, разматывая стек вызовов.
* Результаты каждого рекурсивного вызова используются для вычисления окончательного результата.
101.
**Пример:**Вычисление факториала с помощью рекурсии:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
**Как работает этот пример:**
* Если `n` равно 0, функция возвращает 1, что является базовым условием.
* Если `n` не равно 0, функция умножает `n` на результат рекурсивного вызова `factorial(n-1)`.
* Рекурсия продолжается до тех пор, пока не будет достигнуто базовое условие (`n` равно 0).
* Результаты каждого рекурсивного вызова перемножаются, чтобы получить окончательный результат.
102.
Преимущества рекурсии* Упрощает код для задач, которые имеют рекурсивную структуру.
* Позволяет решать сложные задачи, разбивая их на более мелкие подзадачи.
Недостатки рекурсии
* Может привести к переполнению стека, если рекурсия слишком глубокая.
* Может быть сложнее отслеживать и отлаживать, чем итеративный код.
Советы по использованию рекурсии:
* Всегда используйте базовое условие для остановки рекурсии.
* Внимательно подбирайте параметры рекурсивных вызовов, чтобы избежать переполнения стека.
* Рассмотрите использование итеративного подхода вместо рекурсии, если это возможно, для
повышения производительности и простоты отслеживания.
103.
Массивы. Модульnumpy
ЛЕКЦИЯ 5
104.
**NumPy** (сокращенно от Numerical Python) - это библиотека Python,которая предоставляет мощные функции для работы с многомерными
массивами и матрицами. Она широко используется в научных вычислениях,
обработке данных и машинном обучении.
**Основные возможности NumPy:**
* Создание и манипулирование многомерными массивами (также
известными как тензоры)
* Линейная алгебра (матричные операции, вычисление собственных
значений и собственных векторов)
* Статистические функции (вычисление средних значений, дисперсий и т.д.)
* Обработка сигналов (преобразование Фурье, фильтрация и т.д.)
* Взаимодействие с другими библиотеками, такими как SciPy и Matplotlib
Сайт: http://numpy.scipy.org/
Документация: http://scipy.org/doc/numpy_api_docs/
105.
Создание и индексация массивовДля создания массивов NumPy можно использовать функцию `numpy.array()`.
import numpy as np
# Создаем одномерный массив
array_1d = np.array([1, 2, 3, 4, 5])
# Создаем двумерный массив (матрицу)
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
106.
107.
108.
109.
linspace также создаюет массив-диапазон.Её первый аргумент – начало диапазона, второй - конец диапазона, третий - количество элементов в
диапазоне.
110.
Срезы111.
Специальные функции для создания массиваones массив из единиц,
zeros - массив из нулей,
empty - массив, значения элементов которого могут быть какими угодно (берётся то, что лежало в ячейках памяти до того, как
в них был размещён массив).
112.
113.
Методы массивовa=numpy.array([0.1, 0.25, -1.75, 0.4, -0.9]):
114.
115.
Функция может применяться к самому массиву и производить действия над всеми элементамиИ даже сложные составные выражения
r = sin(x)*cos(x)*exp(-x**2) + 2 + x**2
подвластны волшебству массивов:
r = zeros(len(x))
for i in xrange(len(x)):
r[i] = sin(x[i])*cos(x[i])*exp(-x[i]**2) + 2 + x[i]**2
+
существенный выигрыш в скорости по сравнению со списками
существенно повышает скорость обработки
делает код более понятным и ясным для чтения
116.
Использование срезов:117.
Массивы numpy можно итерировать циклом118.
Применим форматированиеprint(" {:12.8 f}\t {:12.8 f}\t {:12.8 f}".format(t[i], x[i], y[i ]))
119.
Двумерные массивыДвумерные массивы в Python, также известные как матрицы, представляют собой табличные
структуры данных, содержащие элементы, расположенные в строках и столбцах. Они широко
используются в различных областях, таких как обработка изображений, линейная алгебра и
машинное обучение.
120.
121.
Итерирование многомерных массивовЕсли нужно перебрать поэлементно весь массив, можно использовать атрибут flat:
122.
Функция dotОсуществляет матричное умножение
[[4 1]
[2 2]]
11
[16 1]
[18 6]
123.
Графики. Модульmatplotlib
ЛЕКЦИЯ 6
124.
Модуль matplotlibMatplotlib - это библиотека визуализации данных для Python, которая используется для
создания различных типов графиков, таких как линейные графики, гистограммы, рассеянные
диаграммы и т.д. Она предоставляет простой и интуитивно понятный интерфейс для создания
настраиваемых и информативных визуализаций.
Основные возможности Matplotlib:
Создание широкого спектра типов графиков, включая линейные графики, гистограммы,
рассеянные диаграммы и т.д.
• Настройка осей координат, легенд, заголовков и т.д.
• Поддержка различных форматов вывода, таких как PNG, JPEG, PDF и SVG
• Взаимодействие с другими библиотеками, такими как NumPy и Pandas
125.
Простые графикиИмпортируйте библиотеку Matplotlib и используйте функции pyplot для создания графика.
126.
По оси абсцисс отложены номера элементовсписка x, а по оси ординат - сами эти элементы.
Вы можете настроить график, изменив его
размер, цвет, стиль линий, метки осей и т.д.
127.
128.
Встроенные типы линий (linestyle) и маркеров (markers)129.
plot (x, ’:o’)show ()
130.
Изменить цвет графика можно с помощью параметра color:plot (x, ’:o’, color =’grey ’)
show ()
Если нужного цвета нет среди именованных значений, можно использовать кодировку, похожую на RGB. Нужно
задать интенсивность каждого цвета от 0 до 1:
1 соответствует максимально возможной интенсивности каждого цвета,
0 - его нулевой интенсивности.
plot (x, ’:o’, color =(0.5 , 0, 0.5))
show ()
131.
Функции plot можно передать два списка.Первый список интерпретируется как абсциссы точек, второй - как их ординаты.
132.
Несколько кривых на одном поле133.
Сохранение графика в файлС помощью команды savefig, единственным обязательным аргументом которой является имя файла.
plot (t, x)
plot (t, y)
savefig (’sincos .png ’)
show ()
Можно сохранить график в файлы разных форматов:
plot (t, x)
plot (t, y)
savefig (’sincos .png ’)
savefig (’sincos .pdf ’)
show ()
134.
title, xlabel и ylabel135.
136.
137.
legend (loc=’best ’)grid ( True )
138.
Несколько графиков на одном полеfrom numpy import *
from matplotlib . pyplot import *
t = arange (0, 2, 0.01)
x = sqrt (t)
y=t
z = sqrt (t **3)
u = t**2
v = sqrt (t **5)
w = t**3
subplot (3, 2, 1)
plot (t, x, label =’x **(1/2) ’)
title (r’$\ sqrt {x}$’)
ylim ([0 , 5])
subplot (3, 2, 2)
plot (t, y, label =’x’, color =’red ’)
title (r’$x$ ’)
ylim ([0 , 5])
subplot (3, 2, 3)
plot (t, z, label =’x **(3/2) ’)
title (r’$\ sqrt {x^3}$’)
ylim ([0 , 5])
subplot (3, 2, 4)
plot (t, u, ’:’, label =’x **2 ’)
title (r’$x ^2$’)
ylim ([0 , 5])
subplot (3, 2, 5)
plot (t, v, label =’x **(5/2) ’)
title (r’$\ sqrt {x^5}$’)
ylim ([0 , 5])
subplot (3, 2, 6)
plot (t, w, label =r’$x ^3$’)
title (r’$x ^3$’)
legend (loc =0)
grid ( True )
tight_layout ()
show ()
139.
140.
Несколько окон с графиками141.
Гистограммы142.
Изменим программу, указав количество разбиений:143.
Диаграммы-столбцы144.
145.
146.
Круговые диаграммы147.
148.
Контурные диаграммы149.
150.
Можно использовать функцию contourf .151.
Трёхмерные графикиВсе дополнительные классы для работы в 3D находятся в модуле:
mpl_toolkits.mplot3d
создадим трехмерную систему координат
152.
После создания координатных осей можно в них строить двумерные и трехмерные графики:•plot() – линейный 2D график в трех измерениях;
•step() – ступенчатый 2D график в трех измерениях;
•scatter() – точеный график 3D график.
Также становятся доступными следующие дополнительные функции:
•plot_wireframe() – построение каркасной поверхности в 3D;
•plot_surface() – построение непрерывной 3D поверхности.
153.
154.
Теперь можно нарисовать что-нибудь трёхмерное в полученных осях. Можно рисоватьодин каркас (wireframe ), а можно - поверхность (surface):
155.
156.
loadtxt и savetxt[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]]
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
157.
Обработка текстовЛЕКЦИЯ 7
158.
Обработка текста159.
Кодировка Python-программы160.
Кодировка Python-программыПолный перечень кодировок (и их псевдонимов):
Если кодировка не указана, то считается, что используется us-ascii.
161.
Строковые литералы162.
Форматирование строкФорматирование можно сделать с помощью оператора %, и метода format.
Если для подстановки требуется только один аргумент, то значение - сам аргумент:
А если несколько, то значением будет являться кортеж со строками подстановки:
163.
164.
165.
Флаги преобразования:166.
Операции над строками167.
168.
Некоторые наиболее употребительные значениядля спецификации форматирования
169.
Методы строк170.
171.
172.
Метод endswith()используется для проверки того, оканчивается ли строка на определенноесочетание букв:
Метод replace:
173.
Модуль difflib174.
Пример на использование функции difflib.get_close_matches():В списке names - названия Unicode-символов с ASCII-кодами от 40 до 127.
175.
Регулярные выражения176.
177.
Синтаксис регулярного выражения178.
179.
180.
181.
Флаги, используемые с регулярнымивыражениями
182.
Методы объекта-шаблона183.
184.
185.
ПримерыЛюбой символ кроме новой строки
Точки в строке
186.
Любая цифра>>> text = '01, Янв 2018'
>>> print(re.findall('\d+', text)) # Любое число (1 и более цифр подряд)
['01', '2018']
Все, кроме цифры
>>> text = '01, Янв 2018'
>>> print(re.findall('\D+', text)) # Любая последовательность, кроме цифр
[', Янв ']
Любая буква или цифра
>>> text = '01, Янв 2018'
>>> print(re.findall('\w+', text)) # Любой символ(1 или несколько подряд)
['01', 'Янв', '2018']
187.
Все, кроме букв и цифрТолько буквы
>>> text = '01, Янв 2018'
>>> print(re.findall('[а-яА-ЯёЁ]+', text)) # Последовательность букв русского алфавита
['Янв']
Соответствие заданное количество раз
188.
1 и более вхождений>>> print(re.findall(r'Co+l', 'So Cooool')) # 1 и более буква 'o' в строке
['Cooool']
Любое количество вхождений (0 или более раз)
0 или 1 вхождение
189.
Работа с файламиЛЕКЦИЯ 8
190.
Файлы Python191.
Открытие файла192.
193.
Пример194.
Закрытие файла195.
196.
197.
Чтение и запись файлов в Python198.
199.
200.
Переименование файлов в Python201.
Текущая позиция в файлах Python202.
Некоторые методы файла в Python203.
МодульTkinterЛЕКЦИЯ 9
204.
205.
Tkinter206.
Класс Tk207.
Расширенное использование виджетов в TkinterНекоторые виджеты Tkinter:
208.
Расположение виджетов209.
Обработка событий210.
Tkinter и ООППример использования ООП с Tkinter для создания простого приложения:
211.
Стилизация виджетов212.
Виджеты меню и подменюДля создания меню используется виджет Menu
213.
Взаимодействие с пользователем черездиалоговые окна
214.
CanvasВ tkinter от класса Canvas создаются объекты-холсты, на которых можно "рисовать", размещая
различные фигуры и объекты, с помощью вызовов соответствующих методов.
При создании экземпляра Canvas необходимо указать к какому окну он относится, его ширину и высоту
(точка отсчета – верхний левый угол).
can = Canvas(root, width=200, height=200, bg='white')
Здесь:
сan – это имя (любой идентификатор) холста, под которым он в дальнейшем используется
root – имя окна, в котором будет расположен «холст»
with – ширина
height – длина
bg – фон холста.
Фон может задаваться словами: white, black, gray, navy, blue, cyan, green, yellow, red, orange, brown,
maroon, violet, purple и т.д. или в формате RGB.
215.
Canvas применяется в Python для вывода следующих графических примитивов:линий,
прямоугольников,
эллипсов,
текста,
окон,
изображений
При размещении объектов на «холсте» указываются их координаты на холсте в пикселах.
Точка отсчета – верхний левый угол (0,0)
216.
217.
Методы Canvas для двухмерного рисования:218.
Создание линииМетод
Параметры
Свойства:
create_line()
координаты x и y
fill – цвет линии
arrow – тип стрелки ((FIRST(начало отрезка), BOTH (с обеих сторон), LAST (в конце отрезка)
with – ширина стрелки в пикселях
activefille – цвет стрелки при наведении курсора
arrowshape – форма стрелки (три значения)
dash – делает стрелку пунктирной (два значения – первое – сколько пикселей нарисовано, второе –
сколько пикселей пропущено)
219.
Создание нескольких одинаковых линий220.
Создание прямоугольникаМетод
Параметры
Свойства:
create_rectangle()
координаты x и y верхнего левого угла и правого нижнего
fill – цвет прямоугольника
outline – цвет границ прямоугольника
with – ширина границ прямоугольника в пикселях
activedash – при наведении курсора граница прямоугольника становится пунктирной
activefill – при наведении курсора цвет фигуры меняется на указанный
activeoutline – цвет контура фигуры меняется при наведении курсора
221.
Отрисовка многоугольникаМетод
create_polygon()
Параметры
координаты каждой точки многоугольника
(координаты каждой точки можно брать в скобки)
Свойства:
такие же как и в прямоугольнике
Важно! Если не задавать цвет – многоугольник окрашивается в сплошной черный цвет!!!
222.
Пример 2: при наведении курсора, буква П меняет цвет на синий:223.
Отрисовка овалаМетод
Параметры
Свойства:
create_oval()
координаты прямоугольника, в который вписан овал
такие же как и в прямоугольнике
224.
Отрисовка дуги225.
Отображение текста226.
227.
Вывод изображения228.
Добавление виджетовметод create_window()
229.
230.
Создание прокруткиДля создания прокрутки виджет Canvas предоставляет параметр , который позволяет установить
прокручиваемую область:
В данном случае устанавливается прокручиваемая область 1000х1000:
231.
Список использованных источников и литературы:1. Сысоева М. В., Сысоев И. В. Программирование для «нормальных» с нуля на языке Python: Учебник. В
двух частях. Часть 1 / Ответственный редактор: В. Л. Черный : — М.: Базальт СПО; МАКС Пресс, 2018. —
176 с. [+4 с. вкл]: ил.
2. Примеры применения регулярных выражений в Python. URL: https://pythonru.com/primery/primeryprimeneniya-regulyarnyh-vyrazheniy-v-python. (Дата обращения 20.01.2024)
3. Васильев А. Н. Программирование на Python в примерах и задачах. М.: Бомбора. – 2020. – 616 с.
232.
Учебная литератураЗахаркина Светлана Валерьевна
Основы программирования на Python.
Мультимедийное сопровождение лекций
Учебное пособие
Объем 4,47 МБ Тираж 10
Редакционно-издательский отдел ФГБОУ ВО «РГУ им. А.Н. Косыгина»
115035, Москва, ул. Садовническая, 33, стр. 1
тел. 8-495-811-01-01 доб. 1099
e-mail: riomgudt@mail.ru
programming