Similar presentations:
Программирование на Python
1. Программирование на Python
Zhuldyz Sotsial - MSc in Mechanical Engineering, NU’212. О курсе
Описание: Экспресс курссодержит базовые аспекты
программирования на python и
предназначен ученикам старших
классов и студентам начальных
курсов
Цель: изучить основы python-a
для понимания правил
программирования и реализации
финального проекта
Содержание
1.
Базовая концепция программирования и запуск
2.
Python Основы программирования на Python
3.
Эффективное программирование на Python
4.
Алгоритм I: структура данных
5.
Алгоритм II: Алгоритмы сортировки
6.
Алгоритм III: решение проблем с помощью
алгоритмов
7.
Обработка данных и описательная
статистика, визуализация данных
8.
Анализ и визуализация данных - мини-проект
2
3. Урок 1.
34. Содержание урока
Краткая история. Что такое программа, языки
программирования.
Основные этапы развития языков
программирования. Разнообразие языков
программирования, трансляция.
Знакомство с python . Краткая история, особенности
языка.
Типы данных. Переменные
Ввод и вывод данных
4
5. Программа, языки программирования
56. Основные этапы развития исторического развития языков программирования
67. Разнообразия языков программирования
78. Трансляция
89. Как описать язык?
● Семантика - это самая простая часть описания алгоритмического языка.На уровне грамматики определяются корректные последовательности
символов - лексемы. Если последовательность символов принадлежит
языку, то она считается синтаксически правильной.
● Синтаксис - это соответствие между синтаксически правильными
программами и действиями абстрактного исполнителя, то есть это смысл
синтаксических конструкций.
● Прагматика - задает конкретизацию абстрактного вычислителя для
данной вычислительной системы.
9
10. История языка Python
Язык программирования Pythonбыл создан к 1991 году голландцем
Гвидо ван Россумом
Свое имя Пайтон (или Питон) получил от названия
популярного в 70 х годах британского телесериала
«Летающий цирк Монти Пайтона », а не пресмыкающегося
Официальный сайт поддержки языка: https://python.org
10
11. Основные особенности языка
Python интерпретируемый язык программирования.
Python характеризуется ясным синтаксисом.
Python используется в различных сферах.
Интерпретаторы Python распространяются свободно на основании
лицензии подобной GNU General Public License
11
12. Сильные стороны Python
● Объектно ориентированный● Мощный
○
○
○
○
○
○
○
Динамическая типизация
Автоматическое управление памятью
Модульное программирование
Встроенные типы объектов
Встроенные инструменты
Библиотеки утилит
Утилиты сторонних разработчиков
● Прост в изучении
12
13. Дзен Python (правила в программировании)
1314. Как писать программы в Python (интерактивный режим)
Для экспериментов и тестированияВ среде IDLE (в Windows ) для этого используются сочетания клавиш (скорее
всего Alt N и Alt P , в MAC OS Ctrl P и Ctrl N
14
15. Как писать программы в Python (Создание скриптов)
Файлы с кодом на Python обычно имеют расширение *.ру15
16. Выполнение программы с точки зрения python
1617. Виртуальная Машина Python (PVM)
Фактически PVM это просто большой цикл, который выполняет переборинструкций в байт коде, одну за одной, и выполняет соответствующие им
операции.
17
18. Фиксированные двоичные файлы (frozen binaries)
Три инструмента создания фиксированных двоичных файлов:● Py2exe
● PyInstaller
● freeze
18
19. Введение в типы объектов языка Python
Объекты это области памяти со значениями и ассоциированными с ниминаборами операций.
Программы на языке Python можно разложить на:
1. Программы делятся на модули.
2. Модули содержат инструкции.
3. Инструкции состоят из выражений.
4. Выражения создают и обрабатывают объекты
19
20. Базовые типы данных в языке Python
2021. Операции в программировании
Знак плюса неприменим, если операндами являются, с одной стороны, число, а сдругой строка
21
22. Математический операции
2223. Изменение типов данных
Однако надо понимать, что преобразовать можно не все:23
24. Переменные
Имена переменных могут быть любыми Однако есть несколько общих правил ихнаписания:
1. Желательно давать переменным осмысленные имена, говорящие о назначении
данных, на которые они ссылаются.
2. Имя переменной не должно совпадать с командами языка (зарезервированными
ключевыми словами).
3. Имя переменной должно начинаться с буквы или символа подчеркивания но не с
цифры.
4. Имя переменной не должно содержать пробелы
24
25. Переменные
Чтобы узнать значение, на которое ссылается переменная, находясь врежиме интерпретатора, достаточно ее вызвать, т е написать имя и нажать
Enter.
Вот более сложный пример работы с переменными в интерактивном режиме.
25
26. Ввод и вывод данных
2627. Вывод данных
В скобках могут быть любые типы данных Кроме того, количество данныхможет быть различным
27
28. Вывод данных
Если в скобках стоит выражение, то сначала оно выполняется, после чегоprint уже выводит результат данного выражения
В print предусмотрены дополнительные параметры Например, через
параметр sep можно указать отличный от пробела разделитель строк:
28
29. Вывод данных
Параметр end позволяет указывать, что делать, после вывода строки Поумолчанию происходит переход на новую строку. Однако это действие можно
отменить, указав любой другой символ или строку:
29
30. Вывод данных (использование форматирования строк)
Здесь вместо трех комбинаций символов %s, %d, и %f подставляются значенияпеременных pupil, old, grade. Буквы s d f обозначают типы данных строку,
целое число, вещественное число. Если бы требовалось подставить три
строки, то во всех случаях использовалось бы сочетание %s.
30
31. Вывод данных (использование форматирования строк)
В строке в фигурных скобках указаны номера данных, которые будут сюдаподставлены. Далее к строке применяется метод format(). В его скобках
указываются сами данные (можно использовать переменные). На нулевое
место подставится первый аргумент метода format(), на место с номером 1 второй и т.д.
31
32. F-строки Python 3 (улучшенный синтаксис форматирования строк)
Также называемые «formatted string literals » (« отформатированныестроковые литералы »)
>>> name = “Eric”
>>> age = 74
>>> f"Hello, {name}. You are {age}."
Hello, Eric . You are 74.
32
33. F-строки Python 3 (улучшенный синтаксис форматирования строк)
>>> f"{2 * 37}"74
>>> def to_lowercase(input):
return input.lower()
>>> name = “Eric Idle”
>>> f"{to_lowercase(name)} is funny.”
eric idle is funny
33
34. Многострочные f-строки
3435. Многострочные f-строки
3536. Python f-строки (особенности использования)
3637. Ввод данных
3738. Ввод данных
3839. Ввод данных
3940. Ввод данных
4041. Ввод данных
Программный код можно сократить, если преобразование типов выполнить втех же строках кода, где вызывается функция input():
41
42. Домашнее задание
1. Напишите программу, которая спрашивает у человека имя, фамилию ивозраст (N). Далее, выведите сообщение:
“Дорогой (Фамилия Имя), вам N лет, поэтому я могу/не могу пропустить вас.”
Реализуйте задачу с помощью разных методов ввода и вывода.
1.
Добавьте внутрь вывода текста ‘\n’ или ‘\t’ и объясните как изменился ваш вывод?
Например:
>>> print(“Дорогой (Фамилия Имя), \n вам N лет, поэтому я могу/не могу \t пропустить вас.”)
42
43. Урок 2.
4344. Установка Anaconda
● Перейдите на сайт anaconda.com44
45.
4546.
4647. True False
ОператорОписание
a==b
True если оба равны
a<b
True если а меньше b
a<=b
True если a меньше или равно b
a>b
True если а больше b
a>=b
True если а больше или равно b
a!=b
True если а не равно b
47
48. Выражения and/or
4849. Выражение not
4950. Определение типа данных
5051. Содержание урока
Встроенные последовательности
○ Строки
○ Списки
Динамическая типизация
51
52. Встроенные последовательности
5253. Операции над последовательностями
5354. Операции над последовательностями
5455. Операции над последовательностями
5556. Срезы
5657. Операции над последовательностями
5758. Неизменяемость
5859. Методы, специфичные для типа
5960. Методы, специфичные для типа
6061. Методы, специфичные для типа
6162. Получение помощи
6263. Получение помощи
6364. Списки
Списки это упорядоченные по местоположению коллекции объектовпроизвольных типов, размер которых не ограничен. Списки являются
изменяемыми типами данных.
64
65. Операции над последовательностями
6566. Методы специфичные для типа
6667. Методы специфичные для типа
# Сортировка и обратная сортировка элементовсписка M в алфавитном порядке
# Сортировка чисел будет по мере увеличения или
убывания чисел
67
68. Вложенные списки
6869. Генераторы списков
6970. Генераторы списков
7071. Генераторы списков
7172. Генераторы списков
7273. Генераторы списков
7374.
Важно отличать типы данных!#tuple
#list
#dictionary
74
75. Повторение
1. Перечислите характеристики типа данных «список», которые вы знаете.Свойств много. Озвучим некоторые:
1. Списки изменяются динамически (вы можете создать пустой список, потом добавить в него ряд элементов,
затем удалить часть из них – и все это будет осуществляться в одном контейнере, относиться к одной и той же
переменной);
2. К элементам списка можно получить доступ по индексу (начиная с нулевого). Индексация бывает и обратной,
отрицательной (индекс -1 обозначает последний элемент списка, -2 – предпоследний и т.д.);
3. В списках может содержаться ряд элементов любых типов (числа, строки, другие списки …);
4. У списков имеется большое разнообразие методов, позволяющих осуществлять операции с ними
(расширять, удалять элементы, очищать, сортировать);
5. Списки можно «резать», т.е. формировать более мелкие последовательности на основании имеющейся;
6. Значения элементов могут повторяться.
75
76. Повторение
2. Как проверить наличие элемента в списке?Есть 2 очевидных способа:
1. При помощи конструкции in:
2. При помощи метода count:
Пример – IDE
lst = [1, 2, 3, 14, 33, 1, 1]
if 1 in lst:
____print('Есть')
Пример – IDE
lst = [1, 2, 3, 14, 33, 1, 1]
if lst.count(5):
____print('Есть')
else:
____print('Нет')
Результат:
Есть
Результат:
Нет
76
77. Повторение
3. Чем отличаются методы append() и extend()?Метод append() добавляет в конец текущего списка новый элемент.
Метод extend() добавляет в конец текущего списка новые элементы в распакованном виде.
Посмотрим отличия на примере.
Пример – IDE
lst = [1, 2, 3, 14, 33, 1, 1]
lst.extend('Добавка')
print(lst)
Результат:
[1, 2, 3, 14, 33, 1, 1, 'Д', 'о', 'б', 'а', 'в', 'к', 'а']
Пример – IDE
lst = [1, 2, 3, 14, 33, 1, 1]
lst.append('Добавка')
print(lst)
Результат:
[1, 2, 3, 14, 33, 1, 1, 'Добавка']
77
78. Повторение
4. Какие параметры можно передавать при срезах списков?Для срезов можно пользоваться функцией slice() или специальным сокращением, куда входит 3 параметра: начало среза (по
умолчанию – первый элемент), конец среза (конечный член списка, не включая его), шаг (по умолчанию – 1, т.е. выбираем все
элементы без пропусков).
Пример – IDE
h = [1, 2, 3, 14, 33, 1, 9]
print(h[slice(2, 6, 2)])
Результат:
[3, 33]
Т.е. создаем новый список начиная с элемента с индексом 2 (в нашем случае это цифра 3) вплоть до 6 элемента (не включая
его) с шагом 2 (пропускаем каждое второе значение).
Часть или все параметры можно опускать в специальных сокращениях.
Пример – IDE
h = [1, 2, 3, 14, 33, 1, 9]
print(h[2:6:2])
print(h[::2])
Результат:
[3, 33]
[1, 3, 33, 9]
78
79. Задача
Вам дано число N и число X. Выведитечисло X ровно N раз в формате [X, X, X,... ,X].
Используйте функцию print() для вывода списка.
79
80. Словари
Словари (отображения) это коллекции объектов, но доступ к ним осуществляетсяне по определенным смещениям от начала коллекции, а по ключам.
Словари единственный тип отображения в наборе базовых объектов Python также
относятся к классу изменяемых объектов.
80
81. Операции над отображениями
8182. Операции над отображениями
8283. Операции над отображениями
8384. О вложенности
8485. Очистка переменной
8586. Задача
Создайте словарь с ключами: имя, рост, возраст.Создайте форму ввода данных для каждого ключа.
Дайте им свои значения.
Выведите результат на экран создав предложение.
Пример:
‘Мое имя - (знач1), а моя фамилия - (знач2). Мне (знач3) лет’
86
87. Урок 3.
8788. Содержание урока
Встроенные последовательности
○ Кортежи
For loops & While loops
88
89. Кортежи
Объект кортеж ( tuple - произносится как « тъюпл » или « тъюпел », в зависимости оттого, у кого вы спрашиваете) в общих чертах напоминает список, который невозможно
изменить - кортежи являются последовательностями, как списки, но они являются
неизменяемыми, как строки.
89
90. Кортежи
9091. Кортежи
9192. Кортежи
9293.
9394. Обобщение свойств встроенных коллекций
9495. Общие подходы к работе с любой коллекцией
9596. Общие подходы к работе с любой коллекцией
???96
97. Обход всех элементов коллекции в цикле for
9798. Функции min(), max(), sum()
9899. Сортировка по ключам: циклы for
99100. Сортировка по ключам: циклы for
100101. Циклы for и while
101102. Итерации
102103. For loop and While loop
Каждый язык программирования, с которым я сталкивался, содержит какую-нибудь конструкцию цикла. В большей частиязыков есть больше одной такой конструкции. В мире Python есть два типа циклов:
Цикл for
Цикл while
Цикл for популярнее второго. Циклы используются в тех случаях, когда нам нужно сделать что-нибудь много раз. Нередко
вам придется выполнить какую-нибудь операцию (или ряд операций) в части данных снова и снова. Тут то и вступают в силу
циклы. Благодаря им становится возможно максимально упростить данный вопрос.
Чтобы узнать подробнее, давайте перейдем по ссылке https://pythonscripts.com/loops-for-while
103
104. Урок 4.
104105. Содержание урока
Динамическая Типизация
Практика
105
106. Динамическая типизация (Отсутствие инструкций объявления)
Типы данных в языке Python определяются автоматически во время выполнения,это означает, что вам не требуется заранее объявлять переменные.
106