ݺߣ

ݺߣShare a Scribd company logo
Розділяй і володарюй
Модульність в программі: функції та модулі
Основи програмування мовою Python, лекція 5 Київ, 2015
принцип модульності в автопромі
... і
в програмуванні
головна
програма
float()
text_prompt()
print()
int()
range()
raw_input()
input()
функції дозволяють виділити
повторювані фрагменти коду
і використовувати їх
повторно, можна навіть
за межами програми
Python 2.X
Python 3.X
повторююся
Оголошення функції
def function_name(arg1, arg2):
...
<some code>
..
return result
x = function_name(a, b)
y = 0.5
y = cos x
майже такі ж самі...
ім'я функції
та список аргументів
тіло функції,
містить будь-які дії
}
функція повертає
значення результат
функції визначають області видимості
для змінних
всередині видно свої змінні (локальні)
та змінні з основної програми (глобальні),
причому можна створити локальні змінні
з такими ж іменами –
використовуватися будуть вони
а в основній програмі не видно локальні
змінні функцій
бажано використовувати всередині
функції лише локальні змінні,
а дані з основної програми
передавати як аргументи
за необхідності функції можуть
вкладатися одна в одну
а вкладені локальні функції не
будуть доступні в основній програмі
функція може використовувати інші
функції, якщо вони знаходяться в
глобальній області видимості
головна
програма
myfunction2()
myfunction1() inner_function()
головна
програма
myfunction2()
myfunction1() inner_function()
Для того, щоб зрозуміти рекурсію,
треба спочатку зрозуміти рекурсію
Факторіал числа
0! = 1
1! = 1
2! = 1·2 = 2
3! = 1·2·3 = 6
4! = 1·2·3·4 = 24
5! = 1·2·3·4·5 = 120
6! = 1·2·3·4·5·6 = 720
7! = 1·2·3·4·5·6·7 = 5040
8! = 1·2·3·4·5·6·7·8 = 40320
9! = 1·2·3·4·5·6·7·8·9 =362880
10! = 1·2·3·4·5·6·7·8·9·10 =3628800
знову обчислення факторіалу,
але рекурсивне
будьте уважні: як і цикл, рекурсія
завжди повинна мати умову виходу
text_prompt()
text_input()
number_input()
positive_input()
input_module
input_module.py
draw_button()
large_button()
round_button()
drawing_module
drawing_module.py
factorial()
power()
quad_equation()
PI = 3.14
FAVORITE_NUM = 7
HOLIDAY = 'Sunday'
calc_module
calc_module.py
ініціалізація
модуля
головна програма
якісь модулі
якісь
функції
якісь
константи
якісь
виконувані
операції
програму можна
розділити на окремі
файли – модулі
будь-яка програма може бути
підключена як модуль
якщо вона містить при цьому
виконуваний код, а не лише оголошення,
його буде виконано
в момент підключення
Вбудовані модулі
datetime MINYEAR, MAXYEAR
timedelta, tzinfo, time, date, datetime
time struct_time
accept2dyear, altzone, daylight, timezone, tzname
asctime(), clock(), ctime(), gmtime(), localtime(), mktime(), sleep(), strftime(), strptime(), time()
— містить типи даних та константи для роботи з датою та часом
— містить типи даних, змінні та функції для роботи з часом
random SystemRandom
seed(), getstate(), setstate(), randrange(), randint(), choice(), random(), ...
— містить тип та функції для генерації випадкових чисел
math pi, e
factorial() :-), floor(), exp(), log(), log10(), pow(), sqrt(), acos(), cos(), sin(), tan(), ...
— містить математичні константи та функції
... – є багато вже готових
it's game time!
text_prompt()
text_input()
number_input()
positive_input()
input_module
input_module.py
draw_button()
large_button()
round_button()
drawing_module
drawing_module.py
factorial()
power()
quad_equation()
PI = 3.14
FAVORITE_NUM = 7
HOLIDAY = 'Sunday'
calc_module
calc_module.py
ініціалізація
модуля
головна програма
my_packageother_package mikes_package
super_package_with_all_good_things
__init__.py__init__.py __init__.py
__init__.py
якщо модулів багато, їх
можна складати в пакети
означає, що це пакет, а не просто папка з файлами
а тепер те саме, але з підключенням
модулів, які містяться в пакеті
порожній файл __init__.py
модуль введення даних
модуль розрахунків
Дякую за увагу!
Над випуском працювали:
• Павлюченко Нікіта Сергійович
• Панібрат Марія Олексіївна
НТУУ "КПІ", 2015

More Related Content

Prometheus. Масовий онлайн курс "Основи програмування". Лекція 5