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

Содержание

Слайд 2

Что такое программирование? Программирование — это создание программ для компьютеров. Этим занимаются программисты. Чем занимаются программисты:

Что такое программирование?

Программирование — это создание программ для компьютеров. Этим занимаются

программисты.

Чем занимаются программисты:

Слайд 3

Направления в программировании

Направления в программировании

Слайд 4

Основы языка Python Введение в язык программирования Python. Его история и особенности. Первый запуск рабочей среды

Основы языка Python

Введение в язык программирования Python.

Его история и

особенности.

Первый запуск рабочей среды

Слайд 5

Историческая справка Язык программирования Python был задуман нидерландским программистом Гвидо ван

Историческая справка

Язык программирования Python был
задуман нидерландским
программистом Гвидо ван Россумом.
Разработка

начата в 1989 году.

Язык Python

Слайд 6

ОС Amoeba Язык ABC Язык Python

ОС Amoeba

Язык ABC

Язык Python

Слайд 7

Python Python Monty Python ×

Python

Python

Monty Python

×

Слайд 8

Откуда название? Название языка произошло вовсе не от названия семейства пресмыкающихсяНазвание

Откуда название?

Название языка произошло вовсе не от названия семейства пресмыкающихсяНазвание языка произошло

вовсе не от названия семейства пресмыкающихся. Автор назвал язык в честь популярного британского комедийного телешоу 1970-хНазвание языка произошло вовсе не от названия семейства пресмыкающихся. Автор назвал язык в честь популярного британского комедийного телешоу 1970-х «Летающий цирк Монти Пайтона»[25]. Впрочем, всё равно название языка чаще связывают именно со змеёй, нежели с передачей — пиктограммы. Впрочем, всё равно название языка чаще связывают именно со змеёй, нежели с передачей — пиктограммы файлов в KDE. Впрочем, всё равно название языка чаще связывают именно со змеёй, нежели с передачей — пиктограммы файлов в KDE или в Microsoft Windows и сам логотип языка изображает змеиные головы.
Слайд 9

Python сегодня Поддерживаемые парадигмы программирования Структурное программирование Объектно-ориентированное программирование Функциональное программирование

Python сегодня

Поддерживаемые
парадигмы
программирования

Структурное
программирование

Объектно-ориентированное
программирование

Функциональное
программирование


Python — мультипарадигмальный язык программированияPython — мультипарадигмальный язык программирования. Полностью поддерживаются объектно-ориентированноеPython — мультипарадигмальный язык программирования. Полностью

поддерживаются объектно-ориентированное и структурное программированиеPython — мультипарадигмальный язык программирования. Полностью поддерживаются объектно-ориентированное и структурное программирование, а также функциональноеPython — мультипарадигмальный язык программирования. Полностью поддерживаются объектно-ориентированное и структурное программирование, а также функциональное и аспектно-ориентированноеPython — мультипарадигмальный язык программирования. Полностью поддерживаются объектно-ориентированное и структурное программирование, а также функциональное и аспектно-ориентированное (в том числе метапрограммирование[26])[27]. Множество других методик, в том числе контрактное[28][28][29] и логическое программирование[30] можно реализовать с помощью расширений.
Слайд 10

Объектно-ориентированный язык программирования Объектно-ориентированный язык программированияОбъектно-ориентированный язык программирования (ОО-язык) — язык,

Объектно-ориентированный язык программирования

Объектно-ориентированный язык программированияОбъектно-ориентированный язык программирования (ОО-язык) — язык, построенный на принципах объектно-ориентированного программирования.
В основе

концепции объектно-ориентированного программирования лежит понятие объекта — некой сущности, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).
Например, объект человек может иметь поля имя, фамилия и методы есть и спать.
Соответственно, в программе можем использовать операторы 
Человек.Имя:="Иван" и Человек.Есть(пища).
Слайд 11

Историческая справка Гвидо ван Россум известен среди разработчиков как «Великодушный пожизненный

Историческая справка

Гвидо ван Россум известен среди
разработчиков как «Великодушный
пожизненный диктатор

Python».
Это означает, что он продолжает
наблюдать за разработкой языка и
принимает окончательные решения по
его развитию, когда это необходимо.

Гвидо ван Россум

Слайд 12

Универсальность

Универсальность

Слайд 13

Простота и минимализм print ('Привет!') Привет!

Простота и минимализм

print ('Привет!')

Привет!

Слайд 14

Кроссплатформенность и интеграция

Кроссплатформенность и интеграция

Слайд 15

интерпретируемый язык программирования. Это означает, что записываемые на нём программы при

интерпретируемый язык
программирования.
Это означает, что записываемые на нём
программы при

каждом выполнении
построчно переводятся в двоичный код
и выполняются сразу после перевода.

Python —

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

Среда разработки

Слайд 16

Системы программирования Системы программирования — это средства для создания новых программ.

Системы программирования

Системы программирования — это средства для создания новых программ.

Транслятор —

это программа, которая переводит тексты программ, написанных программистом, в машинные коды (команды процессора).

компилятор — переводит всю программу в машинные коды, строит исполняемый файл (.exe)
интерпретатор — сам выполняет программу по частям (по одному оператору).

program Hello;
begin
write('Привет!')
end.

Слайд 17

Системы программирования Отладчик — это программа для поиска ошибок в других

Системы программирования

Отладчик — это программа для поиска ошибок в других программах.

пошаговый

режим — выполнение программы по шагам (по одному оператору)
просмотр значений переменных во время выполнения программы
точки останова – операторы в программе, перед выполнением которых нужно остановиться.

Среда программирования (IDE):
редактор текста программ
транслятор
отладчик

Слайд 18

Как работает Python

Как работает Python

Слайд 19

Как работает Python

Как работает Python

Слайд 20

Как работает Python

Как работает Python

Слайд 21

Как работает Python

Как работает Python

Слайд 22

Простейшая программа # Это пустая программа комментарии после # не обрабатываются

Простейшая программа

# Это пустая программа

комментарии после # не обрабатываются

# coding: utf-8
#

Это пустая программа

кодировка utf-8 по умолчанию)

"""
Это тоже комментарий
"""

Слайд 23

Вывод на экран print( "Привет!" ) оператор вывода Оператор — это

Вывод на экран

print( "Привет!" )

оператор вывода

Оператор — это команда языка программирования.

print(

"Привет", Вася! )

print( "Привет, Вася!" )

вся строка в кавычках

Слайд 24

Переход на новую строку print( "Привет, Вася!" ) print( "Привет, Петя!"

Переход на новую строку

print( "Привет, Вася!" )
print( "Привет, Петя!" )

Результат:

Нужно в

одной строке:

Привет, Вася!
Привет, Петя!

Привет, Вася!Привет, Петя!

Решение:

print( "Привет, Вася!", end="" )
print( "Привет, Петя!" )

переход на новую строку автоматически

end=""

после вывода данных ничего не выводить

Слайд 25

Задачи «B»: Вывести на экран текст «лесенкой» Вася пошел гулять «C»:

Задачи

«B»: Вывести на экран текст «лесенкой»
Вася
пошел
гулять
«C»: Вывести на

экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
Слайд 26

Программирование (Python) § 18. Линейные программы

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

§ 18. Линейные программы

Слайд 27

Пример задачи Задача. Ввести два числа и вычислить их сумму. #

Пример задачи

Задача. Ввести два числа и вычислить их сумму.

# ввести два

числа
# вычислить их сумму
# вывести сумму на экран

Псевдокод – алгоритм на русском языке с элементами языка программирования.

Слайд 28

# ввести два числа # вычислить их сумму # вывести сумму

# ввести два числа
# вычислить их сумму
# вывести сумму

на экран

Зачем нужны переменные?

Переменная — это величина, которая имеет имя, тип и значение. Значение переменной может изменяться во время выполнения программы.

a b c

ячейки памяти

Слайд 29

Имена переменных Идентификатор — это имя программы или переменной. a b

Имена переменных

Идентификатор — это имя программы или переменной.

a b c

МОЖНО использовать
латинские

буквы (A-Z, a-z)
цифры
знак подчеркивания _

НЕЛЬЗЯ использовать скобки, знаки ", &, |, *, +, =, !, ? и др.

Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

Слайд 30

Работа с переменными Присваивание (запись значения) a = 5 = оператор

Работа с переменными

Присваивание (запись значения)

a = 5

=

оператор присваивания

a = 5
a =

18

Вывод на экран

print(a)

с = 14
print(c)

с = 14
print("с")

14

c

a ← 5

Слайд 31

Работа с переменными Изменение значения i = i + 1 увеличить

Работа с переменными

Изменение значения

i = i + 1

увеличить на 1

a

= 4
b = 7
a = a + 1
b = b + 1
a = a + b
b = b + a
a = a + 2
b = b + a

4

7

5

8

13

21

15

36

i ← i + 1

Python:

a, b = 4, 7
a += 1
b += 1
a += b
b += a
a += 2
b += a

Слайд 32

Ввод с клавиатуры Цель – изменить исходные данные, не меняя программу. a = input() 5 a

Ввод с клавиатуры

Цель – изменить исходные данные, не меняя программу.

a =

input()

5

a

Слайд 33

Ввод с клавиатуры a = input() ввести строку с клавиатуры и

Ввод с клавиатуры

a = input()

ввести строку с клавиатуры и связать с

переменной a

b = input()

с = a + b

print ( c )

Протокол:
21
33
2133

a = int( input() )

b = int( input() )

преобразовать в целое число

Слайд 34

Ввод с подсказкой a = input( "Введите число: " ) подсказка

Ввод с подсказкой

a = input( "Введите число: " )

подсказка

Введите число:

Qu-Qu

a =

int( input("Введите число: ") )

преобразовать в целое число

ValueError: invalid literal for int() with base 10: 'Qu-Qu'

Введите число:

26

Слайд 35

Ввод вещественных чисел print( "Введите число:" ) x = float (input())

Ввод вещественных чисел

print( "Введите число:" )
x = float (input())

или так:

x

= float (input("Введите число:"))

float

float

Слайд 36

Программа сложения чисел ожидание: реальность: Введите два числа: 5 7 5+7=12

Программа сложения чисел

ожидание:

реальность:

Введите два числа:
5
7
5+7=12

5
7
12

a = int (

input() )
b = int ( input() )
c = a + b
print ( c )
Слайд 37

Вывод данных с текстом 5+7=12 значение a значение с значение b

Вывод данных с текстом

5+7=12

значение a

значение с

значение b

print(a, "+", b, "=", c)

print(a,

"+", b, "=", c, sep="" )

ожидание:

реальность:

5+7=12

5 + 7 = 12

sep=""

separator

пустой

Слайд 38

Программа сложения чисел print ( "Введите два числа: " ) a

Программа сложения чисел

print ( "Введите два числа: " )
a = int

( input() )
b = int ( input() )
c = a + b
print ( a, "+", b, "=", c, sep="" )
Слайд 39

Ввод двух чисел в одной строке a, b = map (

Ввод двух чисел в одной строке

a, b = map ( int,

input().split() )

input()

ввести строку с клавиатуры

21 33

input().split()

21

33

разделить строку на части по пробелам

map ( int, input().split() )

21

33

целые

применить

эту операцию

a, b = map ( int, input().split() )

Слайд 40

Задачи «A»: Ввести три числа, найти их сумму. Пример: Введите три

Задачи

«A»: Ввести три числа, найти их сумму.
Пример:
Введите три числа:

4
5
7
4+5+7=16
«B»: Ввести три числа, найти их сумму и произведение.
Пример:
Введите три числа:
4
5
7
4+5+7=16
4*5*7=140
Слайд 41

Задачи «C»: Ввести три числа, найти их сумму, произведение и среднее

Задачи

«C»: Ввести три числа, найти их сумму, произведение и среднее арифметическое.

Пример:
Введите три числа:
4
5
7
4+5+7=16
4*5*7=140
(4+5+7)/3=5.333333
Слайд 42

Арифметические выражения Линейная запись (в одну строку): a = (c +

Арифметические выражения

Линейная запись (в одну строку):

a = (c + b -

1) / 2 * d

Операции:

+ –
* – умножение
/ – деление
** – возведение в степень (x2 → x**2)

Слайд 43

Порядок выполнения операций a = (c + b**5*3 - 1) /

Порядок выполнения операций

a = (c + b**5*3 - 1) / 2

* d

Приоритет (старшинство):
скобки
возведение в степень **
умножение и деление
сложение и вычитание

1

2

3

4

5

6

перенос на следующую строку

a = (c + b**5*3
- 1) / 2 * d

перенос внутри скобок разрешён

Слайд 44

Деление Классическое деление: a = 9; b = 6 x =

Деление

Классическое деление:

a = 9; b = 6
x = 3 / 4

# = 0.75
x = a / b # = 1.5
x = -3 / 4 # = -0.75
x = -a / b # = -1.5

a = 9; b = 6
x = 3 // 4 # = 0
x = a // b # = 1
x = -3 // 4 # = -1
x = -a // b # = -2

Целочисленное деление (округление «вниз»!):

Слайд 45

Частное и остаток // – деление нацело (остаток отбрасывается) % –

Частное и остаток

// – деление нацело (остаток отбрасывается)
% – остаток от

деления

t = 175
m = t // 60 # 2
s = t % 60 # 55

175 сек = 2 мин 55 сек

Слайд 46

Частное и остаток n = 123 d = n // 10

Частное и остаток

n = 123
d = n // 10 # 12


k = n % 10 # 3

При делении на 10 нацело отбрасывается последняя цифра числа.

Остаток от деления на 10 – это последняя цифра числа.

Слайд 47

Операторы // и % a = 1234 d = a %

Операторы // и %

a = 1234
d = a % 10; print(

d )
a = a // 10 # 123
d = a % 10; print( d )
a = a // 10 # 12
d = a % 10; print( d )
a = a // 10 # 1
d = a % 10; print( d )
a = a // 10 # 0

4

3

2

1

Слайд 48

Сокращенная запись операций a += b # a = a +

Сокращенная запись операций

a += b # a = a + b


a -= b # a = a - b
a *= b # a = a * b
a /= b # a = a / b
a //= b # a = a // b
a %= b # a = a % b

a += 1

увеличение на 1

Слайд 49

Форматный вывод a = 1; b = 2; c = 3

Форматный вывод

a = 1; b = 2; c = 3
print( a,

b, c )

1 2 3

print("{}{}{}".format(a,b,c))

123

print("{}{:3}{:5}".format(a,b,c))

1 2 3

3

5

форматная строка

Слайд 50

Форматный вывод a = 1; b = 2 print("{}+{}={}".format(a,b,c)) 1+2=3

Форматный вывод

a = 1; b = 2
print("{}+{}={}".format(a,b,c))

1+2=3

Слайд 51

Задачи «A»: Ввести число, обозначающее количество секунд. Вывести то же самое

Задачи

«A»: Ввести число, обозначающее количество секунд. Вывести то же самое время

в минутах и секундах.
Пример:
Введите число секунд: 175
2 мин. 55 с.
«B»: Ввести число, обозначающее количество секунд. Вывести то же самое время в часах, минутах и секундах.
Пример:
Введите число секунд: 8325
2 ч. 18 мин. 45 с
Слайд 52

Задачи «С»: Занятия в школе начинаются в 8-30. Урок длится 45

Задачи

«С»: Занятия в школе начинаются в 8-30. Урок длится 45 минут,

перерывы между уроками – 10 минут. Ввести номер урока и вывести время его окончания.
Пример:
Введите номер урока: 6
13-50
Слайд 53

print("x={:10.3f}".format(x)) Форматный вывод x=12.345678 print("x={}".format(x)) x=12.345678 12.346 3 10 всего на

print("x={:10.3f}".format(x))

Форматный вывод

x=12.345678
print("x={}".format(x))

x=12.345678

12.346

3

10

всего на число

в дробной части

print("x={:8.2f}".format(x))

12.34

Слайд 54

Форматный вывод 12.34 12.3 print("x={:2.2f}".format(x)) print("x={:0.1f}".format(x)) минимально возможное 12.34 print("x={:.2f}".format(x))

Форматный вывод

12.34

12.3

print("x={:2.2f}".format(x))

print("x={:0.1f}".format(x))

минимально возможное

12.34

print("x={:.2f}".format(x))

Слайд 55

Научный формат чисел x=123456789 print("x={:e}".format(x)) 1.234568e+008 1,234568 ⋅108 x=0.0000123456789 print("x={:e}".format(x)) 1.234568e-005 1,234568 ⋅10–5

Научный формат чисел

x=123456789
print("x={:e}".format(x))

1.234568e+008

1,234568 ⋅108

x=0.0000123456789
print("x={:e}".format(x))

1.234568e-005

1,234568 ⋅10–5

Слайд 56

Операции с вещественными числами x=1.6 print(int(x)) int – целая часть числа

Операции с вещественными числами

x=1.6
print(int(x))

int – целая часть числа

1

x=-1.2
print(round(x))

-1

round – ближайшее

целое число
Слайд 57

Математические функции import math # квадратный корень print( math.sqrt(25) ) r

Математические функции

import math
# квадратный корень
print( math.sqrt(25) )
r = 50 #

радиус окружности
print( 2*math.pi*r )
print( math.pi*r**2 )

загрузить модуль math

= подключить математические
функции

Слайд 58

Операции с вещественными числами 1/3 = 0,33333… бесконечно много знаков x

Операции с вещественными числами

1/3 = 0,33333…

бесконечно много знаков

x = 1/2
y

= 1/3
z = 5/6 # 5/6=1/2+1/3
print(x+y-z)

-1.110223e-016

Слайд 59

Задачи «A»: Ввести число, обозначающее размер одной фотографии в Мбайтах. Определить,

Задачи

«A»: Ввести число, обозначающее размер одной фотографии в Мбайтах. Определить, сколько

фотографий поместится на флэш-карту объёмом 2 Гбайта.
Пример:
Размер фотографии в Мбайтах: 6.3
Поместится фотографий: 325.
Слайд 60

Задачи «B»: Оцифровка звука выполняется в режиме стерео с частотой дискретизации

Задачи

«B»: Оцифровка звука выполняется в режиме стерео с частотой дискретизации 44,1

кГц и глубиной кодирования 24 бита. Ввести время записи в минутах и определить, сколько Мбайт нужно выделить для хранения полученного файла (округлить результат в большую сторону).
Пример:
Введите время записи в минутах: 10
Размер файла 152 Мбайт
Слайд 61

Задачи «С»: Разведчики-математики для того, чтобы опознать своих, используют числовые пароли.

Задачи

«С»: Разведчики-математики для того, чтобы опознать своих, используют числовые пароли. Услышав

число-пароль, разведчик должен возвести его в квадрат и сказать в ответ первую цифры дробной части полученного числа. Напишите программу, которая по полученному паролю (вещественному числу) вычисляет число-ответ.
Пример:
Введите пароль: 1.92
Ответ: 6
потому что 1,922 = 3,6864…, первая цифра дробной части – 6
Слайд 62

Случайные и псевдослучайные числа Случайные явления встретил слона – не встретил

Случайные и псевдослучайные числа

Случайные явления
встретил слона – не встретил слона
жеребьёвка

на соревнованиях
лотерея
случайная скорость (направление выстрела ) в игре

Случайные числа — это последовательность чисел, в которой невозможно предсказать следующее число, даже зная все предыдущие.

Слайд 63

Случайные и псевдослучайные числа Псевдослучайные числа — похожи на случайные, но

Случайные и псевдослучайные числа

Псевдослучайные числа — похожи на случайные, но строятся

по формуле.

Xn+1= (a*Xn+b) % c # от 0 до c-1

следующее

предыдущее

Xn+1= (Xn+3) % 10 # от 0 до 9

X = 0

зерно

→ 3

→ 6

→ 9

→ 2

→ 5

→ 8

→ 0

зацикливание

8

→ 1

→ 4

→ 7

Слайд 64

Датчик случайных чисел Целые числа на отрезке: from random import randint

Датчик случайных чисел

Целые числа на отрезке:

from random import randint
K =

randint(1, 6) # отрезок [1,6]
L = randint(1, 6) # это уже другое число!

англ. integer – целый
random – случайный

подключить функцию randint из модуля random

K = random.randint(1, 6)

Слайд 65

Датчик случайных чисел Вещественные числа: from random import random, uniform x

Датчик случайных чисел

Вещественные числа:

from random import random, uniform
x = random()

# полуинтервал [0,1)
y = 7*random() # полуинтервал [0,7)
z = 7*random()+5 # полуинтервал [5,12)

from random import uniform
x = uniform(1.5, 2.8) # [1,5; 2,8]
y = uniform(5.25, 12.75) # [5,25; 12,75]

Вещественные числа на отрезке [a, b]:

Слайд 66

Задачи «A»: В игре «Русское лото» из мешка случайным образом выбираются

Задачи

«A»: В игре «Русское лото» из мешка случайным образом выбираются бочонки,

на каждом из которых написано число от 1 до 90. Напишите программу, которая выводит наугад первые 5 выигрышных номеров.
«B»: + Доработайте программу «Русское лото» так, чтобы все 5 значений гарантированно были бы разными (используйте разные диапазоны).
Слайд 67

Задачи «С»: + Игральный кубик бросается три раза (выпадает три случайных

Задачи

«С»: + Игральный кубик бросается три раза (выпадает три случайных значения).

Из этих чисел составляется целое число, программа должна найти его квадрат.
Пример:
Выпало очков:
1 2 3
Число 123
Его квадрат 15129