Upload
nikita-pavliuchenko
View
10.491
Download
1
Embed Size (px)
Citation preview
Розділяй і володарюй
Модульність в программі: функції та модулі
Основи програмування мовою 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.14FAVORITE_NUM = 7HOLIDAY = 'Sunday'
calc_module
calc_module.py
ініціалізаціямодуля
головна програма
якісь модулі
якісь
функції
якісь
константи
якісь
виконувані
операції
програму можна
розділити на окремі
файли – модулі
будь-яка програма може бути
підключена як модуль
якщо вона містить при цьому
виконуваний код, а не лише оголошення,
його буде виконано
в момент підключення
Вбудовані модулі
datetime MINYEAR, MAXYEARtimedelta, tzinfo, time, date, datetime
time struct_timeaccept2dyear, altzone, daylight, timezone, tznameasctime(), clock(), ctime(), gmtime(), localtime(), mktime(), sleep(), strftime(), strptime(), time()
— містить типи даних та константи для роботи з датою та часом
— містить типи даних, змінні та функції для роботи з часом
random SystemRandomseed(), getstate(), setstate(), randrange(), randint(), choice(), random(), ...
— містить тип та функції для генерації випадкових чисел
math pi, efactorial() :-), 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.14FAVORITE_NUM = 7HOLIDAY = '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