SlideShare a Scribd company logo
1 of 20
Розділяй і володарюй
Модульність в программі: функції та модулі
Основи програмування мовою 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

What's hot

Unit1 summary
Unit1 summaryUnit1 summary
Unit1 summaryeleksdev
 
General Functors
General FunctorsGeneral Functors
General FunctorsDzendzula
 
Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1Dmitry Chabanenko
 
Урок 54 8 клас
Урок 54 8 класУрок 54 8 клас
Урок 54 8 класssuser737e7f
 
09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphismolegapster
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
головне меню за допомогою Label
головне меню за допомогою Labelголовне меню за допомогою Label
головне меню за допомогою Labelantalia1010
 
Основи мови Ci
Основи мови CiОснови мови Ci
Основи мови CiEscuela
 
Pascal osnovu
Pascal osnovuPascal osnovu
Pascal osnovuEscuela
 
01 Incapsulation
01 Incapsulation01 Incapsulation
01 Incapsulationolegapster
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii Hladkyi
 
"Unit testing in AngularJS" Виктор Зозуляк
"Unit testing in AngularJS" Виктор Зозуляк"Unit testing in AngularJS" Виктор Зозуляк
"Unit testing in AngularJS" Виктор ЗозулякFwdays
 
07 Localisation
07 Localisation07 Localisation
07 Localisationolegapster
 

What's hot (20)

Unit1 summary
Unit1 summaryUnit1 summary
Unit1 summary
 
General Functors
General FunctorsGeneral Functors
General Functors
 
Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1
 
Урок 54 8 клас
Урок 54 8 класУрок 54 8 клас
Урок 54 8 клас
 
General Functors ...
General Functors                                                             ...General Functors                                                             ...
General Functors ...
 
09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphism
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
1
11
1
 
9 13
9 139 13
9 13
 
FunctionGraph
FunctionGraphFunctionGraph
FunctionGraph
 
головне меню за допомогою Label
головне меню за допомогою Labelголовне меню за допомогою Label
головне меню за допомогою Label
 
Основи мови Ci
Основи мови CiОснови мови Ci
Основи мови Ci
 
Pascal osnovu
Pascal osnovuPascal osnovu
Pascal osnovu
 
07 Containers
07 Containers07 Containers
07 Containers
 
01 Incapsulation
01 Incapsulation01 Incapsulation
01 Incapsulation
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
9 14
9 149 14
9 14
 
Coding for Future in Lutsk. JavaScript. Part 9
Coding for Future in Lutsk. JavaScript. Part 9Coding for Future in Lutsk. JavaScript. Part 9
Coding for Future in Lutsk. JavaScript. Part 9
 
"Unit testing in AngularJS" Виктор Зозуляк
"Unit testing in AngularJS" Виктор Зозуляк"Unit testing in AngularJS" Виктор Зозуляк
"Unit testing in AngularJS" Виктор Зозуляк
 
07 Localisation
07 Localisation07 Localisation
07 Localisation
 

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

iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)Anatoliy Okhotnikov
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym KindritskyiFwdays
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CMaksym Davydov
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаютьсяcit-cit
 
Uml+Patterns2
Uml+Patterns2Uml+Patterns2
Uml+Patterns2apofig
 
Lesson # 46. the main components of the application for the operating system ...
Lesson # 46. the main components of the application for the operating system ...Lesson # 46. the main components of the application for the operating system ...
Lesson # 46. the main components of the application for the operating system ...Nikolay Shaygorodskiy
 
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуінформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуШкола №7 Миргород
 
Mka python jr-urok_03_ua_1563258828
Mka python jr-urok_03_ua_1563258828Mka python jr-urok_03_ua_1563258828
Mka python jr-urok_03_ua_1563258828PavloTsiura
 
Mka python jr-urok_01_ua_1563258764
Mka python jr-urok_01_ua_1563258764Mka python jr-urok_01_ua_1563258764
Mka python jr-urok_01_ua_1563258764PavloTsiura
 
опорні схеми
опорні схемиопорні схеми
опорні схемиIrina Tabanets
 

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

7_2811.pptx
7_2811.pptx7_2811.pptx
7_2811.pptx
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
Phpunit
PhpunitPhpunit
Phpunit
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
 
Функції в C++
Функції в C++Функції в C++
Функції в C++
 
Модулі Python
Модулі PythonМодулі Python
Модулі Python
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Funkciji1
Funkciji1Funkciji1
Funkciji1
 
Uml+Patterns2
Uml+Patterns2Uml+Patterns2
Uml+Patterns2
 
Lesson # 46. the main components of the application for the operating system ...
Lesson # 46. the main components of the application for the operating system ...Lesson # 46. the main components of the application for the operating system ...
Lesson # 46. the main components of the application for the operating system ...
 
5971 789623
5971 7896235971 789623
5971 789623
 
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуінформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
 
Конкурсна робота
Конкурсна роботаКонкурсна робота
Конкурсна робота
 
Mka python jr-urok_03_ua_1563258828
Mka python jr-urok_03_ua_1563258828Mka python jr-urok_03_ua_1563258828
Mka python jr-urok_03_ua_1563258828
 
Mka python jr-urok_01_ua_1563258764
Mka python jr-urok_01_ua_1563258764Mka python jr-urok_01_ua_1563258764
Mka python jr-urok_01_ua_1563258764
 
Less37
Less37Less37
Less37
 
Tdd, ти де?
Tdd, ти де?Tdd, ти де?
Tdd, ти де?
 
L l13
L l13L l13
L l13
 
опорні схеми
опорні схемиопорні схеми
опорні схеми
 

Recently uploaded

Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfЗастосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfssuser15a891
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяAdriana Himinets
 
Презентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxПрезентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxOlgaDidenko6
 
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості  та дозвілля для дітейpptxБібліотека – розвиток дитячої творчості  та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptxssuserc301ed1
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfssuser54595a
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»tetiana1958
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»tetiana1958
 
Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класkrementsova09nadya
 
Бомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяБомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяssuser0a4f48
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняAdriana Himinets
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...JurgenstiX
 

Recently uploaded (13)

Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfЗастосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. Біографія
 
Презентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxПрезентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptx
 
Її величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptxЇї величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptx
 
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості  та дозвілля для дітейpptxБібліотека – розвиток дитячої творчості  та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
 
Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 клас
 
Бомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяБомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентація
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповідання
 
Віртуальна виставка нових надходжень 2-24.pptx
Віртуальна виставка нових надходжень 2-24.pptxВіртуальна виставка нових надходжень 2-24.pptx
Віртуальна виставка нових надходжень 2-24.pptx
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
 

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