Программирование на Python
О курсе
Урок 1.
Содержание урока
Программа, языки программирования
Основные этапы развития исторического развития языков программирования
Разнообразия языков программирования
Трансляция
Как описать язык?
История языка Python
Основные особенности языка
Сильные стороны Python
Дзен Python (правила в программировании)
Как писать программы в Python (интерактивный режим)
Как писать программы в Python (Создание скриптов)
Выполнение программы с точки зрения python
Виртуальная Машина Python (PVM)
Фиксированные двоичные файлы (frozen binaries)
Введение в типы объектов языка Python
Базовые типы данных в языке Python
Операции в программировании
Математический операции
Изменение типов данных
Переменные
Переменные
Ввод и вывод данных
Вывод данных
Вывод данных
Вывод данных
Вывод данных (использование форматирования строк)
Вывод данных (использование форматирования строк)
F-строки Python 3 (улучшенный синтаксис форматирования строк)
F-строки Python 3 (улучшенный синтаксис форматирования строк)
Многострочные f-строки
Многострочные f-строки
Python f-строки (особенности использования)
Ввод данных
Ввод данных
Ввод данных
Ввод данных
Ввод данных
Домашнее задание
Урок 2.
Содержание урока
Встроенные последовательности
Операции над последовательностями
Операции над последовательностями
Операции над последовательностями
Срезы
Операции над последовательностями
Неизменяемость
Методы, специфичные для типа
Методы, специфичные для типа
Методы, специфичные для типа
Получение помощи
Получение помощи
Списки
Операции над последовательностями
Методы специфичные для типа
Методы специфичные для типа
Вложенные списки
Генераторы списков
Генераторы списков
Генераторы списков
Генераторы списков
Генераторы списков
Повторение
Повторение
Повторение
Повторение
Задача
Словари
Операции над отображениями
Операции над отображениями
Операции над отображениями
О вложенности
Очистка переменной
Задача
Урок 3.
Содержание урока
Кортежи
Кортежи
Кортежи
Кортежи
Обобщение свойств встроенных коллекций
For loop and While loop
Домашнее задание на пройденные все темы
Общие подходы к работе с любой коллекцией
Общие подходы к работе с любой коллекцией
Обход всех элементов коллекции в цикле for
Функции min(), max(), sum()
Сортировка по ключам: циклы for
Сортировка по ключам: циклы for
Циклы for и while
Итерации
Урок 4.
Содержание урока
Динамическая типизация (Отсутствие инструкций объявления)
Переменные, объекты и ссылки
Модель динамической типизации
Модель динамической типизации
Информация о типе хранится в объекте, но не в переменной
Объекты уничтожаются автоматически
Разделяемые ссылки
Разделяемые ссылки
Разделяемые ссылки
Разделяемые ссылки и изменяемые объекты
Разделяемые ссылки и изменяемые объекты
Разделяемые ссылки и изменяемые объекты
Разделяемые ссылки и равенство
Разделяемые ссылки и равенство
Разделяемые ссылки и равенство
7.79M
Category: programmingprogramming

Программирование на Python

1. Программирование на Python

Zhuldyz Sotsial - MSc in Mechanical Engineering, NU’21

2. О курсе

Описание: Экспресс курс
содержит базовые аспекты
программирования на python и
предназначен ученикам старших
классов и студентам начальных
курсов
Цель: изучить основы python-a
для понимания правил
программирования и реализации
финального проекта
Содержание
1.
Базовая концепция программирования и запуск
2.
Python Основы программирования на Python
3.
Эффективное программирование на Python
4.
Алгоритм I: структура данных
5.
Алгоритм II: Алгоритмы сортировки
6.
Алгоритм III: решение проблем с помощью
алгоритмов
7.
Обработка данных и описательная
статистика, визуализация данных
8.
Анализ и визуализация данных - мини-проект
2

3. Урок 1.

3

4. Содержание урока


Краткая история. Что такое программа, языки
программирования.
Основные этапы развития языков
программирования. Разнообразие языков
программирования, трансляция.
Знакомство с python . Краткая история, особенности
языка.
Типы данных. Переменные
Ввод и вывод данных
4

5. Программа, языки программирования

5

6. Основные этапы развития исторического развития языков программирования

6

7. Разнообразия языков программирования

7

8. Трансляция

8

9. Как описать язык?

● Семантика - это самая простая часть описания алгоритмического языка.
На уровне грамматики определяются корректные последовательности
символов - лексемы. Если последовательность символов принадлежит
языку, то она считается синтаксически правильной.
● Синтаксис - это соответствие между синтаксически правильными
программами и действиями абстрактного исполнителя, то есть это смысл
синтаксических конструкций.
● Прагматика - задает конкретизацию абстрактного вычислителя для
данной вычислительной системы.
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 (правила в программировании)

13

14. Как писать программы в Python (интерактивный режим)

Для экспериментов и тестирования
В среде IDLE (в Windows ) для этого используются сочетания клавиш (скорее
всего Alt N и Alt P , в MAC OS Ctrl P и Ctrl N
14

15. Как писать программы в Python (Создание скриптов)

Файлы с кодом на Python обычно имеют расширение *.ру
15

16. Выполнение программы с точки зрения python

16

17. Виртуальная Машина Python (PVM)

Фактически PVM это просто большой цикл, который выполняет перебор
инструкций в байт коде, одну за одной, и выполняет соответствующие им
операции.
17

18. Фиксированные двоичные файлы (frozen binaries)

Три инструмента создания фиксированных двоичных файлов:
● Py2exe
● PyInstaller
● freeze
18

19. Введение в типы объектов языка Python

Объекты это области памяти со значениями и ассоциированными с ними
наборами операций.
Программы на языке Python можно разложить на:
1. Программы делятся на модули.
2. Модули содержат инструкции.
3. Инструкции состоят из выражений.
4. Выражения создают и обрабатывают объекты
19

20. Базовые типы данных в языке Python

20

21. Операции в программировании

Знак плюса неприменим, если операндами являются, с одной стороны, число,
а с другой строка
21

22. Математический операции

22

23. Изменение типов данных

Однако надо понимать, что преобразовать можно не все:
23

24. Переменные

Имена переменных могут быть любыми Однако есть несколько общих правил их написания:
1. Желательно давать переменным осмысленные имена, говорящие о назначении данных, на
которые они ссылаются.
2. Имя переменной не должно совпадать с командами языка (зарезервированными
ключевыми словами).
3. Имя переменной должно начинаться с буквы или символа подчеркивания но не с цифры.
4. Имя переменной не должно содержать пробелы
24

25. Переменные

Чтобы узнать значение, на которое ссылается переменная, находясь в режиме
интерпретатора, достаточно ее вызвать, т е написать имя и нажать Enter.
Вот более сложный пример работы с переменными в интерактивном режиме.
25

26. Ввод и вывод данных

26

27. Вывод данных

В скобках могут быть любые типы данных Кроме того, количество данных
может быть различным
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-строки

34

35. Многострочные f-строки

35

36. Python f-строки (особенности использования)

36

37. Ввод данных

37

38. Ввод данных

38

39. Ввод данных

39

40. Ввод данных

40

41. Ввод данных

Программный код можно сократить, если преобразование типов выполнить в
тех же строках кода, где вызывается функция input():
41

42. Домашнее задание

1. Напишите программу, которая спрашивает у человека имя, фамилию и
возраст (N). Далее, выведите сообщение:
“Дорогой (Фамилия Имя), вам N лет, поэтому я могу/не могу пропустить вас.”
Реализуйте задачу с помощью разных методов ввода и вывода.
1.
Добавьте внутрь вывода текста ‘\n’ или ‘\t’ и объясните как изменился ваш вывод?
Например:
>>> print(“Дорогой (Фамилия Имя), \n вам N лет, поэтому я могу/не могу \t пропустить вас.”)
42

43. Урок 2.

43

44. Содержание урока


Встроенные последовательности
○ Строки
○ Списки
Динамическая типизация
44

45. Встроенные последовательности

45

46. Операции над последовательностями

46

47. Операции над последовательностями

47

48. Операции над последовательностями

48

49. Срезы

49

50. Операции над последовательностями

50

51. Неизменяемость

51

52. Методы, специфичные для типа

52

53. Методы, специфичные для типа

53

54. Методы, специфичные для типа

54

55. Получение помощи

55

56. Получение помощи

56

57. Списки

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

58. Операции над последовательностями

58

59. Методы специфичные для типа

59

60. Методы специфичные для типа

# Сортировка и обратная сортировка элементов
списка M в алфавитном порядке
# Сортировка чисел будет по мере увеличения или
убывания чисел
60

61. Вложенные списки

61

62. Генераторы списков

62

63. Генераторы списков

63

64. Генераторы списков

64

65. Генераторы списков

65

66. Генераторы списков

66

67.

Важно отличать типы данных!
#tuple
#list
#dictionary
67

68. Повторение

1. Перечислите характеристики типа данных «список», которые вы знаете.
Свойств много. Озвучим некоторые:
1. Списки изменяются динамически (вы можете создать пустой список, потом добавить в него ряд элементов,
затем удалить часть из них – и все это будет осуществляться в одном контейнере, относиться к одной и той же
переменной);
2. К элементам списка можно получить доступ по индексу (начиная с нулевого). Индексация бывает и обратной,
отрицательной (индекс -1 обозначает последний элемент списка, -2 – предпоследний и т.д.);
3. В списках может содержаться ряд элементов любых типов (числа, строки, другие списки …);
4. У списков имеется большое разнообразие методов, позволяющих осуществлять операции с ними
(расширять, удалять элементы, очищать, сортировать);
5. Списки можно «резать», т.е. формировать более мелкие последовательности на основании имеющейся;
6. Значения элементов могут повторяться.
68

69. Повторение

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('Нет')
Результат:
Есть
Результат:
Нет
69

70. Повторение

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, 'Добавка']
70

71. Повторение

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]
71

72. Задача

Вам дано число N и число X. Выведите
число X ровно N раз в формате [X, X, X,... ,X].
Используйте функцию print() для вывода списка.
72

73. Словари

Словари (отображения) это коллекции объектов, но доступ к ним осуществляется
не по определенным смещениям от начала коллекции, а по ключам.
Словари единственный тип отображения в наборе базовых объектов Python также
относятся к классу изменяемых объектов.
73

74. Операции над отображениями

74

75. Операции над отображениями

75

76. Операции над отображениями

76

77. О вложенности

77

78. Очистка переменной

78

79. Задача

Создайте словарь с ключами: имя, рост, возраст.
Создайте форму ввода данных для каждого ключа.
Дайте им свои значения.
Выведите результат на экран создав предложение.
Пример:
‘Мое имя - (знач1), а моя фамилия - (знач2). Мне (знач3) лет’
79

80. Урок 3.

80

81. Содержание урока


Встроенные последовательности
○ Кортежи
For loops & While loops
81

82. Кортежи

Объект кортеж ( tuple - произносится как « тъюпл » или « тъюпел », в зависимости
от того, у кого вы спрашиваете) в общих чертах напоминает список, который
невозможно изменить - кортежи являются последовательностями, как списки, но
они являются неизменяемыми, как строки.
82

83. Кортежи

83

84. Кортежи

84

85. Кортежи

85

86.

86

87.

87

88.

Задание:
Создайте кортежи
1) (1, 1, 2)
2) (1, 1, (1,1))
3) ([1], [2])
88

89.

Ответы
Задание:
Посчитайте
1) Сколько двоек?
2) Сколько
однёрок?
в каждом из кортежей
Используйте .count()
89

90.

Находим количество 1 в
кортеже внутри кортежа
90

91. Обобщение свойств встроенных коллекций

91

92. For loop and While loop

Каждый язык программирования, с которым я сталкивался, содержит какую-нибудь конструкцию цикла. В большей части
языков есть больше одной такой конструкции. В мире Python есть два типа циклов:
Цикл for
Цикл while
Цикл for популярнее второго. Циклы используются в тех случаях, когда нам нужно сделать что-нибудь много раз. Нередко
вам придется выполнить какую-нибудь операцию (или ряд операций) в части данных снова и снова. Тут то и вступают в силу
циклы. Благодаря им становится возможно максимально упростить данный вопрос.
Чтобы узнать подробнее, давайте перейдем по ссылке https://pythonscripts.com/loops-for-while
92

93. Домашнее задание на пройденные все темы

циклы
повторение
Создайте кортеж с именами студентов вашей
кортежи
группа и выведите приветствие для каждого из них.
Пример вывода:
>> Привет, Ильяс
>> Привет, Юлия

93

94. Общие подходы к работе с любой коллекцией

94

95. Общие подходы к работе с любой коллекцией

???
95

96. Обход всех элементов коллекции в цикле for

96

97. Функции min(), max(), sum()

97

98. Сортировка по ключам: циклы for

98

99. Сортировка по ключам: циклы for

99

100. Циклы for и while

100

101. Итерации

101

102. Урок 4.

102

103. Содержание урока


Динамическая Типизация
Практика
103

104. Динамическая типизация (Отсутствие инструкций объявления)

Типы данных в языке Python определяются автоматически во время выполнения,
это означает, что вам не требуется заранее объявлять переменные.
104

105. Переменные, объекты и ссылки

105

106. Модель динамической типизации

106

107. Модель динамической типизации

107

108.

108

109. Информация о типе хранится в объекте, но не в переменной

109

110. Объекты уничтожаются автоматически

110

111. Разделяемые ссылки

111

112. Разделяемые ссылки

112

113. Разделяемые ссылки

113

114. Разделяемые ссылки и изменяемые объекты

114

115. Разделяемые ссылки и изменяемые объекты

115

116. Разделяемые ссылки и изменяемые объекты

116

117. Разделяемые ссылки и равенство

117

118. Разделяемые ссылки и равенство

118

119. Разделяемые ссылки и равенство

119

120.

120

121.

121
English     Русский Rules