Программирование на языке Python
Вывод на экран
Вывод на экран
Ввод данных с клавиатуры
Ввод данных с клавиатуры
Ввод данных с клавиатуры
Присваивание
Остаток от деления – %
Условный оператор
Цепочка условий
Сложные условия
Сложные условия
Цикл с условием
Цикл по переменной
Цикл по переменной
Цикл по переменной
Что выведет программа?
Что выведет программа?
Что выведет программа?
Программирование на языке Python
Обработка потока данных (подсчёт)
Обработка потока данных (подсчёт)
Найди ошибку!
Найди ошибку!
Обработка потока данных (сумма)
Обработка потока данных (сумма)
"Бесконечный" цикл
Условия отбора
Если ни одного числа не нашли…
Если ни одного числа не нашли…
Найди ошибку!
Поиск максимума (минимума)
Поиск максимума (минимума)
Поиск максимума (минимума)
Поиск максимума (минимума) – II
Максимум не из всех
Минимум не из всех
Если диапазон неизвестен…
Программирование на языке Python
Обработка потока данных (N чисел)
Обработка потока данных (N чисел)
Обработка потока данных (N чисел)
1.38M
Category: programmingprogramming

д.з. 13.12

1. Программирование на языке Python

1
Программирование
на языке Python
1. Повторение
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

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

Python, 9 класс
2
Вывод на экран
Текст:
print ( "a", "b" )
Значения переменных из памяти:
print ( a, b )
Арифметические выражения:
print ( a + 2*b )
Все вместе:
print ( a, "+", b, "=",
a+b )
Подключение русского языка:
# coding: utf-8
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

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

Python, 9 класс
3
Вывод на экран
С пробелами:
print ( a, b )
Без пробелов:
print ( a, b, sep = "" )
Без перехода на новую строку:
print ( a, b, end = "" )
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

4. Ввод данных с клавиатуры

Python, 9 класс
4
Ввод данных с клавиатуры
Символьная строка:
print( 'Введите имя:' )
s = input()
или так:
s = input('Введите имя:')
Целое число:
print( 'Введите целое число:' )
n = int (input())
или так:
n = int (input('Введите целое число:'))
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

5. Ввод данных с клавиатуры

Python, 9 класс
5
Ввод данных с клавиатуры
Вещественное число:
print( 'Введите число:' )
x = float (input())
или так:
x = float (input('Введите число:'))
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

6. Ввод данных с клавиатуры

Python, 9 класс
6
Ввод данных с клавиатуры
Два целых числа (каждое в отдельной строке):
print( 'Введите два числа:' )
a = int (input())
b = int (input())
в одной строке:
print( 'Введите два числа:' )
a, b = map(int, input().split())
input()
input().split()
a = int("21")
b = int("35")
К.Ю. Поляков, 2017
# "21 35"
# ["21", "35"]
символьные
строки
http://kpolyakov.spb.ru

7. Присваивание

Python, 9 класс
7
Присваивание
а = 6
b = 4
а = 2*а + 3*b
b = a / 2 * b
# a=2*6+3*4=24
# b=(24/2)*4=48
Сокращённая запись операций:
а += 1
b += a
а *= 2 + 3*b
b /= 2 * a
К.Ю. Поляков, 2017
# a = a + 1
# b = b + a
# a = a*(2 + 3*b)
# b = b / (2*a)
http://kpolyakov.spb.ru

8. Остаток от деления – %

Python, 9 класс
8
Остаток от деления – %
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
К.Ю. Поляков, 2017
4
3
2
1
http://kpolyakov.spb.ru

9. Условный оператор

Python, 9 класс
9
Условный оператор
if a > b:
# что делать, если a > b
else:
# что делать, если a <= b
отступы!
a = 12
if a > 20:# ложь
a = 15
print ( a ) # 12
К.Ю. Поляков, 2017
a = 12
if a > 2: # истина
a = 15
else:
a = 8
print ( a ) # 15
http://kpolyakov.spb.ru

10. Цепочка условий

Python, 9 класс
10
Цепочка условий
cost = 1500
if cost < 1000:
print ( "Скидок нет." )
elif cost < 2000:
print ( "Скидка 2%." )
elif cost < 5000:
print ( "Скидка 5%." )
else:
print ( "Скидка 10%." )
? Что выведет?
К.Ю. Поляков, 2017
первое
сработавшее
условие
Скидка 2%.
http://kpolyakov.spb.ru

11. Сложные условия

Python, 9 класс
11
Сложные условия
Задача: набор сотрудников в возрасте 25-40 лет
(включительно).
сложное условие
if v >= 25 and v <= 40 :
print("подходит")
else:
print("не подходит")
and «И»: одновременное выполнение
всех условий!
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

12. Сложные условия

Python, 9 класс
12
Сложные условия
Задача: набор сотрудников в возрасте 25-40 лет
(включительно).
сложное условие
v < 25 or v > 40 :
print("не подходит")
else:
print("подходит")
if
or «ИЛИ»: выполнение хотя бы одного
из двух условий!
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

13. Цикл с условием

Python, 9 класс
13
Цикл с условием
k=0
while k < 10:
print ( "Привет" )
k += 1
? При каком условии
заканчивает работу?
k >= 10
k = 10
while k > 0:
print ( "Привет" )
k -= 1
? При каком условии
заканчивает работу?
k <= 0
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

14. Цикл по переменной

Python, 9 класс
14
Цикл по переменной
сделай
N раз
for i in range(N):
...
! range(N) = [0, 1, 2, …, N-2, N-1 ]
[0,1,2,3]
for i in range(4):
print(i)
0
1
2
3
? Что выведет?
К.Ю. Поляков, 2017
N раз
[0,1,2,3,4]
s = 0
for i in range(5):
s += i
print(s)
10
http://kpolyakov.spb.ru

15. Цикл по переменной

Python, 9 класс
15
Цикл по переменной
от
до (не включая!)
s = 0
for i in range(2,5):
s += i
[2,3,4]
print(s)
Кумир:
s := 0
нц для i от 2 до 4
s := s + i
кц
вывод s
К.Ю. Поляков, 2017
s=2+3+4=9
9
Паскаль:
s := 0;
for i:=2 to 4 do
s := s + i;
writeln(s);
http://kpolyakov.spb.ru

16. Цикл по переменной

Python, 9 класс
16
Цикл по переменной
[2,3,…,14]
s = 8
for i in range(2,15):
s += 5
print(s)
Кумир:
N=14-2+1
s := 8
нц для i от 2 до 14
s := s + 5
кц
вывод s
К.Ю. Поляков, 2017
? Сколько раз?
N=15-2=13
s=8+5*13=73
73
Паскаль:
s := 8;
for i:=2 to 14 do
s = s + 5;
writeln(s);
http://kpolyakov.spb.ru

17. Что выведет программа?

Python, 9 класс
17
Что выведет программа?
s = 3
for i in range(5,25):
s += 10
print(s)
Кумир:
s := 3
нц для i от 5 до 24
s := s + 10
кц
вывод s
К.Ю. Поляков, 2017
203
Паскаль:
s := 3;
for i:=5 to 24 do
s = s + 10;
writeln(s);
http://kpolyakov.spb.ru

18. Что выведет программа?

Python, 9 класс
18
Что выведет программа?
s = 1
for i in range(3,8):
s *= 2
print(s)
Кумир:
s := 1
нц для i от 3 до 7
s := s * 2
кц
вывод s
К.Ю. Поляков, 2017
32
Паскаль:
s := 1;
for i:=3 to 7 do
s = s * 2;
writeln(s);
http://kpolyakov.spb.ru

19. Что выведет программа?

Python, 9 класс
19
Что выведет программа?
k = 3
for i in range(4,8):
k = 2*k + i
print(k)
k = 3
2*3+4=10
2*10+5=25
2*25+6=56
2*56+7= 119
Кумир:
k := 3
нц для i от 4 до 7
k := 2*k + i
кц
вывод k
Паскаль:
k := 3;
for i:=4 to 7 do
k = 2*k + i;
writeln(k);
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

20. Программирование на языке Python

20
Программирование
на языке Python
2. Обработка потока
данных
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

21. Обработка потока данных (подсчёт)

Python, 9 класс
21
Обработка потока данных (подсчёт)
Задача: с клавиатуры вводятся числа, ввод
завершается числом 0. Определить, сколько
было введено положительных чисел.
1) нужен счётчик
? Когда увеличивать
счётчик?
2) счётчик увеличивается если
число > 0
3) нужен цикл
Какой цикл?
4) это цикл с условием (число
? шагов
неизвестно)
счётчик = 0
пока не введён 0:
если введено число > 0:
счётчик += 1
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

22. Обработка потока данных (подсчёт)

Python, 9 класс
22
Обработка потока данных (подсчёт)
k=0
x = int(input())
while x != 0:
откуда взять x?
if x > 0:
k += 1
x = int(input())
? Что плохо?
print( k )
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

23. Найди ошибку!

Python, 9 класс
23
Найди ошибку!
k = 0
x = int(input())
while x != 0:
if x > 0:
k += 1
x = int(input())
print( k )
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

24. Найди ошибку!

Python, 9 класс
24
Найди ошибку!
k=0
x = int(input())
while x !=
== 0:
if x > 0:
k += 1
x = int(input())
print(k)
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

25. Обработка потока данных (сумма)

Python, 9 класс
25
Обработка потока данных (сумма)
Задача: с клавиатуры вводятся числа, ввод
завершается числом 0. Найти сумму
введённых чисел, оканчивающихся на "5".
1) нужна переменная для суммы
2) число добавляется к сумме, если оно
заканчивается на "5"
3) нужен цикл с условием
сумма = 0
пока не введён 0:
если x оканчивается на "5":
сумма += x
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

26. Обработка потока данных (сумма)

Python, 9 класс
26
Обработка потока данных (сумма)
s=0
x = int(input())
while x != 0:
if x % ???
10 == 5 :
s += x
x = int(input())
print( "Ответ:", s )
К.Ю. Поляков, 2017
? Что плохо?
http://kpolyakov.spb.ru

27. "Бесконечный" цикл

Python, 9 класс
27
"Бесконечный" цикл
s=0
while True:
x = int(input())
if x == 0: break
break
if x % 10 == 5:
s += x
print( s )
выйти из
цикла
? Что плохо?
из цикла while True возможен только через
! Выход
оператор break!
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

28. Условия отбора

Python, 9 класс
28
Условия отбора
Положительные числа:
if x > 0: ...
Числа, делящиеся на 3:
if x % 3 == 0: ...
Числа, оканчивающиеся на 6:
if x % 10 == 6: ...
Числа, делящиеся на 3 и оканчивающиеся на 6:
if x % 3 == 0 and x % 10 == 6: ...
Как иначе?
?
if 10 <= x and x <= 99: ...
Двузначные числа:
if 9 < x and x < 100: ...
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

29. Если ни одного числа не нашли…

Python, 9 класс
29
Если ни одного числа не нашли…
Задача: с клавиатуры вводятся числа, ввод
завершается числом 0. Найти сумму
введённых чисел, оканчивающихся на "5".
Вывести "нет", если таких чисел нет.
? Как определить, что таких чисел нет?
сумма = 0
Как вывести результат?
?
счётчик = 0
пока не введён 0:
если x оканчивается на "5":
сумма += x
счётчик += 1
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

30. Если ни одного числа не нашли…

Python, 9 класс
30
Если ни одного числа не нашли…
сумма = 0
счётчик = 0
пока не введён 0:
если x оканчивается на "5":
сумма += x
счётчик += 1
if счётчик == 0:
print("Ответ: нет")
else:
print("Ответ:", s)
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

31. Найди ошибку!

Python, 9 класс
31
Найди ошибку!
k=0
s=0
x = int(input())
s += x
while x != 0:
if x % 10 == 5:
k += 1
x = int(input())
if k == 01:
print("Ответ: нет")
else:
print("Ответ:", sk)
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

32. Поиск максимума (минимума)

Python, 9 класс
32
Поиск максимума (минимума)
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

33. Поиск максимума (минимума)

Python, 9 класс
33
Поиск максимума (минимума)
1) нужна переменная для хранения максимума
2) как только прочитали первое число,
сохранили максимум («из одного»):
x = int(input())
M = x
3) читаем следующее значение:
x = int(input())
4) цикл: если новое число больше максимума,
заменяем M:
while x != 0:
if x > M: M = x
5) выводим результат M
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

34. Поиск максимума (минимума)

Python, 9 класс
34
Поиск максимума (минимума)
x = int(input())
M = x
while x != 0:
if x > M: M = x
print(M)
x = int(input())
print(M)
К.Ю. Поляков, 2017
? Что плохо?
http://kpolyakov.spb.ru

35. Поиск максимума (минимума) – II

Python, 9 класс
35
Поиск максимума (минимума) – II
x = int(input())
M = x
while True:
x = int(input())
if x == 0: break
if x > M: M = x
print(M)
print(M)
К.Ю. Поляков, 2017
? Что плохо?
http://kpolyakov.spb.ru

36. Максимум не из всех

Python, 9 класс
36
Максимум не из всех
Задача: с клавиатуры вводятся числа в
диапазоне [-100;100], ввод завершается
числом 0. Найти наибольшее среди чётных
чисел. Вывести "нет", если таких чисел нет.
x = int(input())
Может быть, что
M = x
x нечётное!
while x != 0:
if x % 2 == ???
0 and x > M:
M = x
x = int(input())
Что плохо?
?
print(M)
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

37. Минимум не из всех

Python, 9 класс
37
Минимум не из всех
По условию: x [-100;100]
x = int(input())
Любое x больше
M = -1000
этого числа!
while x != 0:
if x % 2 == 0 and x > M:
M = x
Как определить, что
?
x = int(input())
ни одного числа не
if M == -1000:
нашли?
print("Нет таких чисел")
else:
print(M)
? Как искать минимум?
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

38. Если диапазон неизвестен…

Python, 9 класс
38
Если диапазон неизвестен…
x = int(input())
count = 0
while x != 0:
if x % 2 == 0:
if count
count ==
== 00 or x > M:
M = x
новый
count += 1 первое
максимум
x = int(input())
if count == 0 :
print("Нет таких чисел")
else:
print(M)
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

39. Программирование на языке Python

39
Программирование
на языке Python
3. Обработка потока
данных (цикл for)
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

40. Обработка потока данных (N чисел)

Python, 9 класс
40
Обработка потока данных (N чисел)
Задача: с клавиатуры вводится число N, а
затем – N целых чисел. Определить, сколько
было введено положительных чисел.
? В чём отличие?
задано количество!
ввести N
в Python нет
такого!
счётчик = 0
сделай N раз:
Есть цикл for!
!
ввести число
если введено число > 0:
счётчик += 1
вывести счётчик
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru

41. Обработка потока данных (N чисел)

Python, 9 класс
41
Обработка потока данных (N чисел)
сделай N раз:
...
for i in range(N):
...
! range(N) = [0, 1, 2, …, N-2, N-1 ]
N раз
for i in range(4):
print(i)
0
1
2
3
? Что выведет?
К.Ю. Поляков, 2017
s = 0
for i in range(4):
s += i
print(s)
6
http://kpolyakov.spb.ru

42. Обработка потока данных (N чисел)

Python, 9 класс
42
Обработка потока данных (N чисел)
N = int(input())
k = 0
for i in range(N):
x = int(input())
if x > 0: k += 1
print(k)
сделай N
раз!
Числа, делящиеся на 3:
if x % 3 == 0: k += 1
Числа, оканчивающиеся на 6:
if x % 10 == 6: k += 1
Числа, делящиеся на 3 и оканчивающиеся на 6:
if x % 3 == 0 and x % 10 == 6: k += 1
К.Ю. Поляков, 2017
http://kpolyakov.spb.ru
English     Русский Rules