Программирование (Python)
Что такое программирование?
Направления в программировании
Откуда название?
Объектно-ориентированный язык программирования
Системы программирования
Системы программирования
Как работает Python
Как работает Python
Как работает Python
Как работает Python
Простейшая программа
Вывод на экран
Переход на новую строку
Задачи
Программирование (Python)
Пример задачи
Зачем нужны переменные?
Имена переменных
Работа с переменными
Работа с переменными
Ввод с клавиатуры
Ввод с клавиатуры
Ввод с подсказкой
Ввод вещественных чисел
Программа сложения чисел
Вывод данных с текстом
Программа сложения чисел
Ввод двух чисел в одной строке
Задачи
Задачи
Арифметические выражения
Порядок выполнения операций
Деление
Частное и остаток
Частное и остаток
Операторы // и %
Сокращенная запись операций
Форматный вывод
Форматный вывод
Задачи
Задачи
Форматный вывод
Форматный вывод
Научный формат чисел
Операции с вещественными числами
Математические функции
Операции с вещественными числами
Задачи
Задачи
Задачи
Случайные и псевдослучайные числа
Случайные и псевдослучайные числа
Датчик случайных чисел
Датчик случайных чисел
Задачи
Задачи
Задачи
5.03M
Category: programmingprogramming

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

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

1
Программирование
(Python)
§ 17. Введение
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
2
Что такое программирование?
Программирование — это создание программ для
компьютеров. Этим занимаются программисты.
Чем занимаются программисты:
анализ задачи (выделение
исходных данных, связей
между ними, этапов решения
задачи)
системные аналитики
разработка алгоритмов
алгоритмисты
написание и отладка программ
кодировщики
тестирование программ
тестировщики
написание документации
технические писатели
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
3
Направления в программировании
системный программист
операционные системы,
утилиты, драйверы
прикладной программист
прикладные программы, в
т.ч. для мобильных
устройств
веб-программист
веб-сайты
программист баз данных
системы управления
базами данных
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

4.

Введение в язык
программирования
Python.
Его история и
особенности.
Первый запуск
рабочей среды
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

5.

Историческая справка
Язык программирования Python был
задуман нидерландским
программистом Гвидо ван Россумом.
Разработка начата в 1989 году.
Язык Python
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

6.

Язык ABC
Язык Python
ОС Amoeba
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

7.

×
Python
Python
Monty Python
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
8
Откуда название?
Название языка произошло вовсе
не от названия
семейства пресмыкающихся. Автор
назвал язык в честь популярного
британского комедийного
телешоу 1970-х «Летающий цирк
Монти Пайтона»[25]. Впрочем, всё
равно название языка чаще
связывают именно со змеёй, нежели
с передачей —
пиктограммы файлов в KDE или
в Microsoft Windows и сам логотип
языка изображает змеиные головы.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

9.

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

Python — мультипарадигмальный язык программирования. Полностью
поддерживаются объектно-ориентированное и структурное
программирование, а также функциональное и аспектноориентированное (в том числе метапрограммирование[26])[27]. Множество
других методик, в том числе контрактное[28][29] и логическое
программирование[30] можно реализовать с помощью расширений.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
10
Объектно-ориентированный язык программирования
Объектно-ориентированный язык программирования (ОО-язык) — язык,
построенный на принципах объектно-ориентированного программирования.
В основе концепции объектно-ориентированного программирования лежит
понятие объекта — некой сущности, которая объединяет в себе поля
(данные) и методы (выполняемые объектом действия).
Например, объект человек может иметь поля имя, фамилия и
методы есть и спать.
Соответственно, в программе можем использовать операторы
Человек.Имя:="Иван" и Человек.Есть(пища).
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

11.

Историческая справка
Гвидо ван Россум известен среди
разработчиков как «Великодушный
пожизненный диктатор Python».
Гвидо ван Россум
К.Ю. Поляков, Е.А. Ерёмин, 2018
Это означает, что он продолжает
наблюдать за разработкой языка и
принимает окончательные решения по
его развитию, когда это необходимо.
http://kpolyakov.spb.ru

12.

Универсальность
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

13.

Простота и минимализм
print ('Привет!')
Привет!
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

14.

Кроссплатформенность и
интеграция
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

15.

Python —
интерпретируемый язык
программирования.
Это означает, что записываемые на нём
программы при каждом выполнении
построчно переводятся в двоичный код
и выполняются сразу после перевода.
Среда разработки
по умолчанию работает в
интерактивном режиме, то есть
команды в ней запускаются на
выполнение сразу после ввода.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
16
Системы программирования
Системы программирования — это средства для
создания новых программ.
Транслятор — это программа, которая переводит
тексты программ, написанных программистом, в
машинные коды (команды процессора).
• компилятор — переводит всю программу в
машинные коды, строит исполняемый файл (.exe)
program Hello;
begin
write('Привет!')
end.
1010010100
privet.exe
• интерпретатор — сам выполняет программу по
частям (по одному оператору).
!
К.Ю. Поляков, Е.А. Ерёмин, 2018
Python – интерпретатор!
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
17
Системы программирования
Отладчик — это программа для поиска ошибок в других
программах.
• пошаговый режим — выполнение программы по
шагам (по одному оператору)
• просмотр значений переменных во время
выполнения программы
• точки останова – операторы в программе, перед
выполнением которых нужно остановиться.
Среда программирования (IDE):
• редактор текста программ
• транслятор
• отладчик
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
18
Как работает Python
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
19
Как работает Python
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
20
Как работает Python
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
21
Как работает Python
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
22
Простейшая программа
# Это пустая программа
?
Что делает эта программа?
комментарии после #
не обрабатываются
кодировка utf-8
по умолчанию)
# coding: utf-8
# Это пустая программа
"""
Это тоже комментарий
"""
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
23
Вывод на экран
оператор
вывода
Оператор — это команда
языка программирования.
print( "Привет!" )
print( "Привет", Вася! )
?
Что плохо?
print( "Привет, Вася!" )
вся строка в
кавычках
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
24
Переход на новую строку
print( "Привет, Вася!" )
print( "Привет, Петя!" )
Результат:
Привет, Вася!
Привет, Петя!
переход на новую
строку автоматически
Нужно в одной строке:
Привет, Вася!Привет, Петя!
Решение:
print( "Привет, Вася!", end="" )
print( "Привет, Петя!" )
после вывода данных
ничего не выводить
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

25. Задачи

Программирование (Python), 8 класс
25
Задачи
«B»: Вывести на экран текст «лесенкой»
Вася
пошел
гулять
«C»: Вывести на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

26
Программирование
(Python)
§ 18. Линейные программы
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
27
Пример задачи
Задача. Ввести два числа и вычислить их сумму.
# ввести два числа
# вычислить их сумму
# вывести сумму на экран
?
Выполнится?
Псевдокод – алгоритм на
русском языке с элементами
языка программирования.
!
Компьютер не может исполнить псевдокод!
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
28
Зачем нужны переменные?
# ввести два числа
Где запомнить?
# вычислить их сумму
# вывести сумму на экран
Переменная — это величина, которая имеет имя, тип и
значение. Значение переменной может изменяться во
время выполнения программы.
a
b
c
ячейки памяти
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
29
Имена переменных
Идентификатор — это имя программы или переменной.
a
b
c
заглавные и строчные
буквы различаются
МОЖНО использовать
• латинские буквы (A-Z, a-z)
• цифры
!
Имя не может начинаться с цифры!
• знак подчеркивания _
НЕЛЬЗЯ использовать скобки, знаки ", &, |, *, +, =, !, ? и др.
Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos”
TU154 [QuQu] _ABBA A+B
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
30
Работа с переменными
Присваивание (запись значения)
a = 5
a = 5
a = 18
оператор
присваивания
?
a ←5
Что будет храниться в a?
Вывод на экран
print(a) ? В чём разница?
с = 14
print(c)
14
К.Ю. Поляков, Е.А. Ерёмин, 2018
с = 14
print("с")
c
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
31
Работа с переменными
Изменение значения
i = i + 1
a
b
a
b
a
b
a
b
=
=
=
=
=
=
=
=
4
7
a
b
a
b
a
b
увеличить на 1
a
4
b
i ← i + 1
Python:
a, b = 4, 7
7
+
+
+
+
+
+
1
1
b
a
2
a
К.Ю. Поляков, Е.А. Ерёмин, 2018
5
8
13
21
15
36
a
b
a
b
a
b
+=
+=
+=
+=
+=
+=
1
1
b
a
2
a
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
32
Ввод с клавиатуры
Цель – изменить исходные данные, не меняя программу.
5
a = input()
!
1. Программа ждет, пока пользователь введет
значение и нажмет Enter.
2. Введенное значение записывается в
переменную a.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
33
Ввод с клавиатуры
a = input()
b = input()
ввести строку с клавиатуры
и связать с переменной a
Протокол:
21
33
2133
с = a + b
print ( c )
!
?
Почему?
Результат функции input – строка символов!
преобразовать в
целое число
a = int( input() )
b = int( input() )
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
34
Ввод с подсказкой
Введите число: 26
a = input( "Введите число: " )
?
подсказка
Что не так?
a = int( input("Введите число: ") )
?
Что будет?
преобразовать
в целое число
Введите число: Qu-Qu
ValueError: invalid literal for int() with base 10: 'Qu-Qu'
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
35
Ввод вещественных чисел
print( "Введите число:" )
x = float (input())
или так:
x = float (input("Введите число:"))
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
36
Программа сложения чисел
?
a = int ( input() )
b = int ( input() )
c=a+b
print ( c )
ожидание:
Введите два числа:
5
7
5+7=12
?
Что плохо?
реальность:
5
7
12
Как улучшить диалог?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
37
Вывод данных с текстом
значение a
значение b
значение с
5+7=12
текст
print(a, "+", b, "=", c)
ожидание:
5+7=12
реальность:
5 + 7 = 12
это пробелы не заказывали!
print(a, "+", b, "=", c, sep="" )
separator
К.Ю. Поляков, Е.А. Ерёмин, 2018
пустой
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
38
Программа сложения чисел
print ( "Введите два числа: " )
a = int ( input() )
b = int ( input() )
c=a+b
print ( a, "+", b, "=", c, sep="" )
?
Как переделать для 3-х чисел?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
39
Ввод двух чисел в одной строке
a, b = map ( int, input().split() )
21 33 input()
ввести строку с клавиатуры
21 33 input().split()
целые
применить
разделить строку на
части по пробелам
21 33 map ( int, input().split() )
эту
операцию
к каждой части
a, b = map ( int, input().split() )
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

40. Задачи

Программирование (Python), 8 класс
40
Задачи
«A»: Ввести три числа, найти их сумму.
Пример:
Введите три числа:
4
5
7
4+5+7=16
«B»: Ввести три числа, найти их сумму и
произведение.
Пример:
Введите три числа:
4
5
7
4+5+7=16
4*5*7=140
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

41. Задачи

Программирование (Python), 8 класс
41
Задачи
«C»: Ввести три числа, найти их сумму, произведение
и среднее арифметическое.
Пример:
Введите три числа:
4
5
7
4+5+7=16
4*5*7=140
(4+5+7)/3=5.333333
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
42
Арифметические выражения
c b 1
a
d
2
Линейная запись (в одну строку):
a = (c + b - 1) / 2 * d
Операции: + –
* – умножение
/ – деление
** – возведение в степень (x2 x**2)
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
43
Порядок выполнения операций
3
1
2
4
5
6
a = (c + b**5*3 - 1) / 2 * d
Приоритет (старшинство):
1) скобки
2) возведение в степень **
3) умножение и деление
4) сложение и вычитание
a = (c + b**5*3 - 1) \
/2*d
a = (c + b**5*3
- 1) / 2 * d
К.Ю. Поляков, Е.А. Ерёмин, 2018
c b5 3 1
a
d
2
перенос на
следующую строку
перенос внутри
скобок разрешён
http://kpolyakov.spb.ru

44. Деление

Программирование (Python), 8 класс
44
Деление
Классическое деление:
a
x
x
x
x
=
=
=
=
=
9; b = 6
3 / 4
#
a / b
#
-3 / 4 #
-a / b #
=
=
=
=
0.75
1.5
-0.75
-1.5
Целочисленное деление (округление «вниз»!):
a
x
x
x
x
=
=
=
=
=
9; b = 6
3 // 4
a // b
-3 // 4
-a // b
К.Ю. Поляков, Е.А. Ерёмин, 2018
#
#
#
#
=
=
=
=
0
1
-1
-2
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
45
Частное и остаток
// – деление нацело (остаток отбрасывается)
% – остаток от деления
175 сек = 2 мин 55 сек ? Как получить 2 и 55?
t = 175
m = t // 60 # 2
s = t % 60 # 55
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
46
Частное и остаток
?
Что получится?
n = 123
d = n // 10 # 12
k = n % 10 # 3
При делении на 10 нацело отбрасывается последняя
цифра числа.
Остаток от деления на 10 – это последняя цифра числа.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
47
Операторы // и %
a
d
a
d
a
d
a
d
a
=
=
=
=
=
=
=
=
=
1234
a % 10;
a // 10
a % 10;
a // 10
a % 10;
a // 10
a % 10;
a // 10
К.Ю. Поляков, Е.А. Ерёмин, 2018
print(
# 123
print(
# 12
print(
# 1
print(
# 0
d )
4
d )
3
d )
2
d )
1
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
48
Сокращенная запись операций
a
a
a
a
a
a
+= b
-= b
*= b
/= b
//= b
%= b
#
#
#
#
#
#
a
a
a
a
a
a
К.Ю. Поляков, Е.А. Ерёмин, 2018
=
=
=
=
=
=
a
a
a
a
a
a
+ b
- b
* b
/ b
// b
% b
a += 1
увеличение на 1
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
49
Форматный вывод
a = 1; b = 2; c = 3
print( a, b, c )
1 2 3
форматная строка
123
print("{}{}{}".format(a,b,c))
тут нужно что-то
вывести
print("{}{:3}{:5}".format(a,b,c))
количество знаков
на вывод числа
?
1
2
3
3
5
Сколько знаков для вывода a?
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
50
Форматный вывод
a = 1; b = 2
print("{}+{}={}".format(a,b,c))
1+2=3
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

51. Задачи

Программирование (Python), 8 класс
51
Задачи
«A»: Ввести число, обозначающее количество секунд.
Вывести то же самое время в минутах и секундах.
Пример:
Введите число секунд: 175
2 мин. 55 с.
«B»: Ввести число, обозначающее количество секунд.
Вывести то же самое время в часах, минутах и
секундах.
Пример:
Введите число секунд: 8325
2 ч. 18 мин. 45 с
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

52. Задачи

Программирование (Python), 8 класс
52
Задачи
«С»: Занятия в школе начинаются в 8-30. Урок длится 45
минут, перерывы между уроками – 10 минут. Ввести
номер урока и вывести время его окончания.
Пример:
Введите номер урока: 6
13-50
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
53
Форматный вывод
x=12.345678
print("x={}".format(x))
всего на
число
x=12.345678
в дробной
части
print("x={:10.3f}".format(x))
12.346
3
10
print("x={:8.2f}".format(x))
12.34
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
54
Форматный вывод
print("x={:2.2f}".format(x))
12.34
print("x={:.2f}".format(x))
12.34
минимально
возможное
print("x={:0.1f}".format(x))
12.3
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
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
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
56
Операции с вещественными числами
int – целая часть числа
x=1.6
print(int(x))
1
round – ближайшее целое число
x=-1.2
-1
print(round(x))
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
57
Математические функции
загрузить
модуль math
= подключить математические
функции
import math
# квадратный корень
print( math.sqrt(25) )
r = 50 # радиус окружности
print( 2*math.pi*r )
Что считаем?
?
print( math.pi*r**2 )
число
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
58
Операции с вещественными числами
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
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

59. Задачи

Программирование (Python), 8 класс
59
Задачи
«A»: Ввести число, обозначающее размер одной
фотографии в Мбайтах. Определить, сколько
фотографий поместится на флэш-карту объёмом
2 Гбайта.
Пример:
Размер фотографии в Мбайтах: 6.3
Поместится фотографий: 325.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

60. Задачи

Программирование (Python), 8 класс
60
Задачи
«B»: Оцифровка звука выполняется в режиме стерео с
частотой дискретизации 44,1 кГц и глубиной
кодирования 24 бита. Ввести время записи в
минутах и определить, сколько Мбайт нужно
выделить для хранения полученного файла
(округлить результат в большую сторону).
Пример:
Введите время записи в минутах: 10
Размер файла 152 Мбайт
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

61. Задачи

Программирование (Python), 8 класс
61
Задачи
«С»: Разведчики-математики для того, чтобы опознать
своих, используют числовые пароли. Услышав
число-пароль, разведчик должен возвести его в
квадрат и сказать в ответ первую цифры дробной
части полученного числа. Напишите программу,
которая по полученному паролю (вещественному
числу) вычисляет число-ответ.
Пример:
Введите пароль: 1.92
Ответ: 6
потому что 1,922 = 3,6864…, первая цифра
дробной части – 6
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
62
Случайные и псевдослучайные числа
Случайные явления
• встретил слона – не встретил слона
• жеребьёвка на соревнованиях
• лотерея
• случайная скорость (направление выстрела ) в игре
• …
Случайные числа — это последовательность чисел, в
которой невозможно предсказать следующее число,
даже зная все предыдущие.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
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
зерно
8 1 4 7 0
зацикливание
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
64
Датчик случайных чисел
Целые числа на отрезке:
подключить функцию randint
из модуля random
from random import randint
K = randint(1, 6) # отрезок [1,6]
L = randint(1, 6) # это уже другое число!
англ. integer – целый
random – случайный
!
Не нужно имя модуля!
K = random.randint(1, 6)
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

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

Программирование (Python), 8 класс
65
Датчик случайных чисел
Вещественные числа:
from random import
x = random()
#
y = 7*random()
#
z = 7*random()+5 #
random, uniform
полуинтервал [0,1)
полуинтервал [0,7)
полуинтервал [5,12)
Вещественные числа на отрезке [a, b]:
from random import uniform
x = uniform(1.5, 2.8)
# [1,5; 2,8]
y = uniform(5.25, 12.75) # [5,25; 12,75]
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

66. Задачи

Программирование (Python), 8 класс
66
Задачи
«A»: В игре «Русское лото» из мешка случайным
образом выбираются бочонки, на каждом из которых
написано число от 1 до 90. Напишите программу,
которая выводит наугад первые 5 выигрышных
номеров.
«B»: + Доработайте программу «Русское лото» так,
чтобы все 5 значений гарантированно были бы
разными (используйте разные диапазоны).
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

67. Задачи

Программирование (Python), 8 класс
67
Задачи
«С»: + Игральный кубик бросается три раза (выпадает
три случайных значения). Из этих чисел
составляется целое число, программа должна найти
его квадрат.
Пример:
Выпало очков:
1 2 3
Число 123
Его квадрат 15129
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

68. Задачи

Программирование (Python), 8 класс
68
Задачи
«D»: + Получить случайное трёхзначное число и вывести
в столбик его отдельные цифры.
Пример:
Получено число 123
сотни: 1
десятки: 2
единицы: 3
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru
English     Русский Rules