 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
1
Програмування
мовою Python
Найпростіші програми
Обчислення
Розгалуження
Символьні величини
Циклічні алгоритми
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Програмування
мовою Python
Найпростіші програми
2
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Найпростіша програма
3
# Це порожня програма
Що робить ця програма?
?
коментарі після #
не опрацьовуються
# coding: utf-8
# Це порожня програма
кодування utf-8 за
замовчуванням)
"""
Це також коментар
"""
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Виведення на екран
4
print ( "2+2=?" )
print ("Відповідь: 4")
Протокол:
2+2=?
Відповідь: 4
автоматичний
перехід на новий
рядок
print ( '2+2=?' )
print ('Відповідь: 4' )
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Додавання чисел
5
Задача. Ввести з клавіатурыи два числа і знайти їх суму.
Протокол:
Введіть два цілих числа
25
30
25+30=55
Комп’ютер
користувач
Комп’ютер рахує сам!
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Змінні
6
Змінна – це величина, яка має ім’я, тип та
значення. Значення змінної можна
змінювати під час роботи програми.
Значення
Ім’я
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Імена змінних
7
МОЖНА використовувати
• латинські букви (A-Z, a-z)
• кирилицю (не можна!)
• цифри
• знак підкреслення _
Великі та маленькі літери розрізняються
НЕ можна використовувати
• дужки
• знаки +, =, !, ? тощо.
Ім’я не може починатися з цифри
Які імена записано правильно?
AXby R&B 4Wheel Вася “PesBarbos”
TU154 [QuQu] _ABBA A+B
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Типи змінних
8
a = 4
print ( type(a) )
<class 'int'>
ціле число (integer)
a = 4.5
print ( type(a) )
<class 'float'>
дійсне число (float)
a = "Вася"
print ( type(a) )
<class 'str'> символьний рядок (str)
a = True
print ( type(a) )
<class 'bool'> логическна (bool)
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Для чого потрібен тип змінної?
9
Тип визначає:
• область допустимих значень
• допустимі операції
• об’єм пам’яті
• формат зберігання даних
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Як записати значення в змінну?
10
a = 5
оператор
присвоюванняя
При записі нового значення
старе видаляється із пам’яті!
!
5
Оператор – це команда мови програмування
(інструкція).
Оператор присвоювання – це команда для
присвоювання нового значення змінній.
a
a = 7 7
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Введення значення з клавіатури
11
1. Програма чекає доки користувач введе
значення і натисне Enter.
2. Введене значення записується в змінну a
!
5
a
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Введенння значення з клавіатури
12
a = input() ввести рядок з клавіатури і
записати в змінну a
b = input()
с = a + b
print ( c )
Протокол:
21
33
2133
Чому?
?
Результат функції input – рядок символів!
!
a = int( input() )
b = int( input() )
перетворити в
ціле число
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Введення з підказкою
13
a = input ( "Введіть число: " )
підказка
Введіть число: 26
Що не так?
?
a = int( input("Введіть число: ") )
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Зміна значень змінної
14
a = 5
b = a + 2
a = (a + 2)*(b – 3)
b = b + 1
a 5
b =5+2
7
28 =(5+2)*(7-3)
=7+1
8
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Виведення даних
15
print ( a ) Значення
змінної
print ( «Відповідь: ",
a )
Значення і
текст
перечисление через запятую
print ( «Відповідь: ", a+b ) обчислення
виразу
print ( a, "+", b, "=", c )
2 + 3 = 5 через пропуски
print ( a, "+", b, "=", c, sep = "" )
2+3=5
sep = ""
Забрати розділювачі
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Додавання чисел: простий розв’язок
16
a = int ( input() )
b = int ( input() )
c = a + b
print ( c )
Що пагано?
?
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
print ( "Введіть два цілих числа: " )
a = int ( input() )
b = int ( input() )
c = a + b
print ( a, "+", b, "=", c, sep="" )
Додавання чисел: повний розв’язок
17
Протокол:
Введіте два цілих числа
25
30
25+30=55
Комп’ютер
користувач
підказка
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Програмування
мовою Python
Обчислення
18
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Арифметичні вирази
19
a = (c + b**5*3 - 1) / 2 * d
Пріоритет (порядок виконання):
1) дужки
2) піднесення до степеня **
3) множення і ділення
4) Додавання і віднімання
1 2
3 4 5 6
d
b
c
a 




2
1
3
5
a = (c + b*5*3 - 1) 
/ 2 * d

перенесення на
наступний рядок
a = (c + b*5*3
- 1) / 2 * d
перенесення
всередині дужок
дозволено
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Ділення
20
Класичне ділення:
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
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Остача від ділення
21
% – остача від ділення
d = 85
b = d // 10 # 8
a = d % 10 # 5
d = a % b # 5
d = b % a # 3
a = 15
b = 19
d = a // b # 0
a = a % b # 15
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Скорочений запис операцій
22
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
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Генератор випадкових чисел
23
Генератор на [0,1):
X = random.random() # псевдосл. число
Y = random.random() # вже інше число!
Цілі числа на відрізку [a,b]:
X = random.randint(1,6) # псевдосл. число
Y = random.randint(1,6) # вже інше число!
import random англ. random – випадковий
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Генератор випадкових чисел
24
Генератор на [0,1):
X = random() # псевдослучайне число
Y = random() # це вже інше число!
Цілі числа на відрізку [a,b]:
X = randint(10,60) # псевдослучайне число
Y = randint(10,60) # це вже інше число!
from random import *
англ. random – випадковий
підключити все!
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Програмування
мовою Python
Розгалуження
25
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Умовний оператор
26
Задача: змінити порядок дій в залежності від вконання
деякої умови.
M = a
a > b?
M = b
так ні
виведення M
повна форма
розгалуження
Якщо a = b?
?
if a > b:
M = a
else:
M = b
відступи
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Умовний оператор: неповна форма
27
M = b
b > a?
да нет
виведення M
M = a
неповна
форма
розгалуження
M = a
if b > a:
M = b
M = max(a, b)
Розв’язок в стилі Python:
M = a if a > b else b
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Умовний оператор
28
if a > b:
с = a
a = b
b = c
Що робить?
?
4 6
?
4
6 4
a b
2
c
a, b = b, a
Розв’язок в стилі Python:
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Знаки відношень
29
> <
>=
<=
==
!=
більше, меньше
більше або дорівнює
меньше або дорівнює
дорівнює
не дорівнює
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Вкладені умовні оператори
30
if a > b:
print("Андрій старше")
else:
if a == b:
print(«одного віку")
else:
print("Борис старше")
вкладений умовний
оператор
Задача: в змінних a та b записано вік Андрія та Бориса.
Хто із них старше?
Скільки варіантів?
?
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Каскадне розгалуження
31
if a > b:
print("Андрій старше")
elif a == b:
print("Одного віку")
else:
print("Борис старше")
elif = else if
!
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Каскадне розгалуження
32
cost = 1500
if cost < 1000:
print ( "Скидок немає." )
elif cost < 2000:
print ( "Скидка 2%." )
elif cost < 5000:
print ( "Скидка 5%." )
else:
print ( "Скидка 10%." )
Що виведе?
?
Перша умова, що
спрацювала
Скидка 2%.
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Складені умови
33
Задача: набір співробітників у віці 25-40 років (включно).
if :
print("підходить")
else:
print("не підходить")
and
v >= 25 and v <= 40
Складена умова
«І»: одночасне виконання
всіх умов!
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Складені умови
34
Задача: набір співробітників у віці 25-40 років (включно).
if :
print("не підходить")
else:
print("підходить")
v < 25 or v > 40
складена умова
or «АБО»: виконання хоча б однієї
із двох умов!
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Складені умови
35
if not(a < b):
print("Cтарт!")
not
Пріоритет :
1) відношення (<, >, <=, >=, ==, !=)
2)not («НІ»)
3)and («І»)
4)or («АБО»)
«НІ»: якщо виконується обернена умова
if a >= b:
print("Cтарт!")
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Програмування
мовою Python
Символьні рядки
36
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Символьні рядки
37
Початкове значення:
Склеювання:
s = "Привіт!" Рядок – це
послідовність
символов!
!
Виведення на екран:
print ( s )
Повторення:
s = "АУ"
s5 = s*5 АУАУАУАУАУ
s5 = s + s + s + s + s
s1 = "Привет"
s2 = "Вася"
s = s1 + ", " + s2 + "!"
"Привіт, Вася!"
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Програмування
мовою Python
Циклічні алгоритми
38
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Що таке цикл?
39
Цикл – це виконання одинакових дій декілька разів.
Два вида циклів:
• цикл з відомим числом повторень(зробити10 разів)
• цикл с невідомим числом повторень (робити, поки
не набридне)
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Цикл з умовою
40
Задача. Визначити кількість цифр в десятковому
записі цілого додатнього числа, записанного в змінну
n.
лічильник = 0
поки n > 0:
забрати останню цифру
числа n
збільшити лічильник на 1
n Лічильник
1234 0
123 1
12 2
1 3
0 4
Як забрати останю цифру?
?
n = n // 10
Як збільшити лічильник на 1?
?
лічильник= лічильник+ 1 Лічильник+= 1
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Цикл з умовою
41
count = 0
while :
n = n // 10
count += 1
тіло цикла
початкове значення
лічильника
n > 0
умова
продовження
заголовок
цикла
Цикл з передумовою – перевірка на вході в цикл!
!
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Цикл із параметром (лічильником)
42
Задача. Вивести 10 разів слово «Привіт!».
Чи можливо це із циклом «поки»?
?
while :
print("Привіт!")
i = 0
i < 10
i += 1
for :
print("Привіт!")
i in range(10)
в діапазоні
[0,10)
Цикл с параметром:
Не включаючи 10!
!
range(10)  0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Цикл з параметром
43
Задача. Вивести всі степені двійки від 21 до 210.
for :
print ( 2**k )
k in range(1,11)
в діапазоні
[1,11)
Цикл з параметром:
Не включаючи
11!
!
range(1,11)  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Алгоритмизация и программирование, язык Python
 К.Ю. Поляков, 2015 http://kpolyakov.spb.ru
Цикл с параметром: інший крок
44
100
81
64
49
36
25
16
9
4
1
Що потримаємо?
?
1
9
25
49
81
for :
print ( k**2 )
k in range(1,11,2)
for :
print ( k**2 )
k in range(10,0,-1)
крок
10,9,8,7,6,5,4,3,2,1
1,3,5,7,9

8клас_Python (1).pptx

  • 1.
     К.Ю. Поляков,2015 http://kpolyakov.spb.ru 1 Програмування мовою Python Найпростіші програми Обчислення Розгалуження Символьні величини Циклічні алгоритми
  • 2.
     К.Ю. Поляков,2015 http://kpolyakov.spb.ru Програмування мовою Python Найпростіші програми 2
  • 3.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Найпростіша програма 3 # Це порожня програма Що робить ця програма? ? коментарі після # не опрацьовуються # coding: utf-8 # Це порожня програма кодування utf-8 за замовчуванням) """ Це також коментар """
  • 4.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Виведення на екран 4 print ( "2+2=?" ) print ("Відповідь: 4") Протокол: 2+2=? Відповідь: 4 автоматичний перехід на новий рядок print ( '2+2=?' ) print ('Відповідь: 4' )
  • 5.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Додавання чисел 5 Задача. Ввести з клавіатурыи два числа і знайти їх суму. Протокол: Введіть два цілих числа 25 30 25+30=55 Комп’ютер користувач Комп’ютер рахує сам!
  • 6.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Змінні 6 Змінна – це величина, яка має ім’я, тип та значення. Значення змінної можна змінювати під час роботи програми. Значення Ім’я
  • 7.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Імена змінних 7 МОЖНА використовувати • латинські букви (A-Z, a-z) • кирилицю (не можна!) • цифри • знак підкреслення _ Великі та маленькі літери розрізняються НЕ можна використовувати • дужки • знаки +, =, !, ? тощо. Ім’я не може починатися з цифри Які імена записано правильно? AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B
  • 8.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Типи змінних 8 a = 4 print ( type(a) ) <class 'int'> ціле число (integer) a = 4.5 print ( type(a) ) <class 'float'> дійсне число (float) a = "Вася" print ( type(a) ) <class 'str'> символьний рядок (str) a = True print ( type(a) ) <class 'bool'> логическна (bool)
  • 9.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Для чого потрібен тип змінної? 9 Тип визначає: • область допустимих значень • допустимі операції • об’єм пам’яті • формат зберігання даних
  • 10.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Як записати значення в змінну? 10 a = 5 оператор присвоюванняя При записі нового значення старе видаляється із пам’яті! ! 5 Оператор – це команда мови програмування (інструкція). Оператор присвоювання – це команда для присвоювання нового значення змінній. a a = 7 7
  • 11.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Введення значення з клавіатури 11 1. Програма чекає доки користувач введе значення і натисне Enter. 2. Введене значення записується в змінну a ! 5 a
  • 12.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Введенння значення з клавіатури 12 a = input() ввести рядок з клавіатури і записати в змінну a b = input() с = a + b print ( c ) Протокол: 21 33 2133 Чому? ? Результат функції input – рядок символів! ! a = int( input() ) b = int( input() ) перетворити в ціле число
  • 13.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Введення з підказкою 13 a = input ( "Введіть число: " ) підказка Введіть число: 26 Що не так? ? a = int( input("Введіть число: ") )
  • 14.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Зміна значень змінної 14 a = 5 b = a + 2 a = (a + 2)*(b – 3) b = b + 1 a 5 b =5+2 7 28 =(5+2)*(7-3) =7+1 8
  • 15.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Виведення даних 15 print ( a ) Значення змінної print ( «Відповідь: ", a ) Значення і текст перечисление через запятую print ( «Відповідь: ", a+b ) обчислення виразу print ( a, "+", b, "=", c ) 2 + 3 = 5 через пропуски print ( a, "+", b, "=", c, sep = "" ) 2+3=5 sep = "" Забрати розділювачі
  • 16.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Додавання чисел: простий розв’язок 16 a = int ( input() ) b = int ( input() ) c = a + b print ( c ) Що пагано? ?
  • 17.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru print ( "Введіть два цілих числа: " ) a = int ( input() ) b = int ( input() ) c = a + b print ( a, "+", b, "=", c, sep="" ) Додавання чисел: повний розв’язок 17 Протокол: Введіте два цілих числа 25 30 25+30=55 Комп’ютер користувач підказка
  • 18.
     К.Ю. Поляков,2015 http://kpolyakov.spb.ru Програмування мовою Python Обчислення 18
  • 19.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Арифметичні вирази 19 a = (c + b**5*3 - 1) / 2 * d Пріоритет (порядок виконання): 1) дужки 2) піднесення до степеня ** 3) множення і ділення 4) Додавання і віднімання 1 2 3 4 5 6 d b c a      2 1 3 5 a = (c + b*5*3 - 1) / 2 * d перенесення на наступний рядок a = (c + b*5*3 - 1) / 2 * d перенесення всередині дужок дозволено
  • 20.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Ділення 20 Класичне ділення: 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
  • 21.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Остача від ділення 21 % – остача від ділення d = 85 b = d // 10 # 8 a = d % 10 # 5 d = a % b # 5 d = b % a # 3 a = 15 b = 19 d = a // b # 0 a = a % b # 15
  • 22.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Скорочений запис операцій 22 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
  • 23.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Генератор випадкових чисел 23 Генератор на [0,1): X = random.random() # псевдосл. число Y = random.random() # вже інше число! Цілі числа на відрізку [a,b]: X = random.randint(1,6) # псевдосл. число Y = random.randint(1,6) # вже інше число! import random англ. random – випадковий
  • 24.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Генератор випадкових чисел 24 Генератор на [0,1): X = random() # псевдослучайне число Y = random() # це вже інше число! Цілі числа на відрізку [a,b]: X = randint(10,60) # псевдослучайне число Y = randint(10,60) # це вже інше число! from random import * англ. random – випадковий підключити все!
  • 25.
     К.Ю. Поляков,2015 http://kpolyakov.spb.ru Програмування мовою Python Розгалуження 25
  • 26.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Умовний оператор 26 Задача: змінити порядок дій в залежності від вконання деякої умови. M = a a > b? M = b так ні виведення M повна форма розгалуження Якщо a = b? ? if a > b: M = a else: M = b відступи
  • 27.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Умовний оператор: неповна форма 27 M = b b > a? да нет виведення M M = a неповна форма розгалуження M = a if b > a: M = b M = max(a, b) Розв’язок в стилі Python: M = a if a > b else b
  • 28.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Умовний оператор 28 if a > b: с = a a = b b = c Що робить? ? 4 6 ? 4 6 4 a b 2 c a, b = b, a Розв’язок в стилі Python:
  • 29.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Знаки відношень 29 > < >= <= == != більше, меньше більше або дорівнює меньше або дорівнює дорівнює не дорівнює
  • 30.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Вкладені умовні оператори 30 if a > b: print("Андрій старше") else: if a == b: print(«одного віку") else: print("Борис старше") вкладений умовний оператор Задача: в змінних a та b записано вік Андрія та Бориса. Хто із них старше? Скільки варіантів? ?
  • 31.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Каскадне розгалуження 31 if a > b: print("Андрій старше") elif a == b: print("Одного віку") else: print("Борис старше") elif = else if !
  • 32.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Каскадне розгалуження 32 cost = 1500 if cost < 1000: print ( "Скидок немає." ) elif cost < 2000: print ( "Скидка 2%." ) elif cost < 5000: print ( "Скидка 5%." ) else: print ( "Скидка 10%." ) Що виведе? ? Перша умова, що спрацювала Скидка 2%.
  • 33.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Складені умови 33 Задача: набір співробітників у віці 25-40 років (включно). if : print("підходить") else: print("не підходить") and v >= 25 and v <= 40 Складена умова «І»: одночасне виконання всіх умов!
  • 34.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Складені умови 34 Задача: набір співробітників у віці 25-40 років (включно). if : print("не підходить") else: print("підходить") v < 25 or v > 40 складена умова or «АБО»: виконання хоча б однієї із двох умов!
  • 35.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Складені умови 35 if not(a < b): print("Cтарт!") not Пріоритет : 1) відношення (<, >, <=, >=, ==, !=) 2)not («НІ») 3)and («І») 4)or («АБО») «НІ»: якщо виконується обернена умова if a >= b: print("Cтарт!")
  • 36.
     К.Ю. Поляков,2015 http://kpolyakov.spb.ru Програмування мовою Python Символьні рядки 36
  • 37.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Символьні рядки 37 Початкове значення: Склеювання: s = "Привіт!" Рядок – це послідовність символов! ! Виведення на екран: print ( s ) Повторення: s = "АУ" s5 = s*5 АУАУАУАУАУ s5 = s + s + s + s + s s1 = "Привет" s2 = "Вася" s = s1 + ", " + s2 + "!" "Привіт, Вася!"
  • 38.
     К.Ю. Поляков,2015 http://kpolyakov.spb.ru Програмування мовою Python Циклічні алгоритми 38
  • 39.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Що таке цикл? 39 Цикл – це виконання одинакових дій декілька разів. Два вида циклів: • цикл з відомим числом повторень(зробити10 разів) • цикл с невідомим числом повторень (робити, поки не набридне)
  • 40.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Цикл з умовою 40 Задача. Визначити кількість цифр в десятковому записі цілого додатнього числа, записанного в змінну n. лічильник = 0 поки n > 0: забрати останню цифру числа n збільшити лічильник на 1 n Лічильник 1234 0 123 1 12 2 1 3 0 4 Як забрати останю цифру? ? n = n // 10 Як збільшити лічильник на 1? ? лічильник= лічильник+ 1 Лічильник+= 1
  • 41.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Цикл з умовою 41 count = 0 while : n = n // 10 count += 1 тіло цикла початкове значення лічильника n > 0 умова продовження заголовок цикла Цикл з передумовою – перевірка на вході в цикл! !
  • 42.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Цикл із параметром (лічильником) 42 Задача. Вивести 10 разів слово «Привіт!». Чи можливо це із циклом «поки»? ? while : print("Привіт!") i = 0 i < 10 i += 1 for : print("Привіт!") i in range(10) в діапазоні [0,10) Цикл с параметром: Не включаючи 10! ! range(10)  0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 43.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Цикл з параметром 43 Задача. Вивести всі степені двійки від 21 до 210. for : print ( 2**k ) k in range(1,11) в діапазоні [1,11) Цикл з параметром: Не включаючи 11! ! range(1,11)  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  • 44.
    Алгоритмизация и программирование,язык Python  К.Ю. Поляков, 2015 http://kpolyakov.spb.ru Цикл с параметром: інший крок 44 100 81 64 49 36 25 16 9 4 1 Що потримаємо? ? 1 9 25 49 81 for : print ( k**2 ) k in range(1,11,2) for : print ( k**2 ) k in range(10,0,-1) крок 10,9,8,7,6,5,4,3,2,1 1,3,5,7,9