20
Розділяй і володарюй Модульність в программі: функції та модулі Основи програмування мовою Python, лекція 5 Київ, 2015

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

Embed Size (px)

Citation preview

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

Розділяй і володарюй

Модульність в программі: функції та модулі

Основи програмування мовою Python, лекція 5 Київ, 2015

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

принцип модульності в автопромі

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

... і

в програмуванні

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

головнапрограма

float()

text_prompt()

print()

int()

range()

raw_input()

input()

функції дозволяють виділити

повторювані фрагменти коду

і використовувати їх

повторно, можна навіть

за межами програми

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

Python 2.X

Python 3.X

повторююся

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

Оголошення функції

def function_name(arg1, arg2): ... <some code> .. return result

x = function_name(a, b)

y = 0.5

y = cos x

майже такі ж самі...

ім'я функції

та список аргументів

тіло функції,

містить будь-які дії}функція повертає

значення результат

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

функції визначають області видимості

для змінних

всередині видно свої змінні (локальні)

та змінні з основної програми (глобальні),

причому можна створити локальні змінні

з такими ж іменами –

використовуватися будуть вони

а в основній програмі не видно локальні

змінні функцій

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

бажано використовувати всередині

функції лише локальні змінні,

а дані з основної програми

передавати як аргументи

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

за необхідності функції можуть

вкладатися одна в одну

а вкладені локальні функції не

будуть доступні в основній програмі

функція може використовувати інші

функції, якщо вони знаходяться в

глобальній області видимості

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

головнапрограма

myfunction2()

myfunction1() inner_function()

головнапрограма

myfunction2()

myfunction1() inner_function()

Для того, щоб зрозуміти рекурсію,треба спочатку зрозуміти рекурсію

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

Факторіал числа

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

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

знову обчислення факторіалу,

але рекурсивне

будьте уважні: як і цикл, рекурсія

завжди повинна мати умову виходу

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

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

ініціалізаціямодуля

головна програма

якісь модулі

якісь

функції

якісь

константи

якісь

виконувані

операції

програму можна

розділити на окремі

файли – модулі

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

будь-яка програма може бути

підключена як модуль

якщо вона містить при цьому

виконуваний код, а не лише оголошення,

його буде виконано

в момент підключення

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

Вбудовані модулі

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(), ...

— містить математичні константи та функції

... – є багато вже готових

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

it's game time!

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

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

якщо модулів багато, їх

можна складати в пакети

означає, що це пакет, а не просто папка з файлами

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

а тепер те саме, але з підключенням

модулів, які містяться в пакеті

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

порожній файл __init__.py

модуль введення даних

модуль розрахунків

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

Дякую за увагу!Над випуском працювали:

• Павлюченко Нікіта Сергійович

• Панібрат Марія Олексіївна

НТУУ "КПІ", 2015