You are on page 1of 9

Процедури і функції

Алгоритм розв'язання задачі проектується шляхом розбиття всієї задачі на окремі


підзадачі.
Зазвичай підзадачі реалізуються у вигляді підпрограм.
Підпрограма - це окрема функціонально незалежна частина програми.
Підпрограми вирішують три важливі задачи:
• позбавляють від необхідності багаторазово повторювати в тексті програми
аналогічні фрагменти;
• покращують структуру програми, полегшуючи її розуміння;
• підвищують стійкість до помилок програмування і непередбачуваних наслідків
при модифікаціях програми.
В підпрограми виділяється будь-який логічно закінчений фрагмент програми.
Підпрограми можуть бути стандартними, тобто визначеними системою, і
користувацькими (власними ), тобто визначеними програмістом.
Стандартна підпрограма (процедура або функція) - підпрограма, включена в
бібліотеку програм, доступ до якої забезпечується засобами мови програмування.
Викликається вона за ім’ям із завданням фактичних параметрів. З набору стандартних
процедур і функцій по обробці одного типу інформації складаються модулі. Кожен
модуль має своє ім'я (наприклад, модулі math, random і ін.). Доступ до процедур і
функцій модуля здійснюється при підключенні цього модуля оператором import.
Зазвичай в мовах програмування підпрограми поділяють на процедури і функції.
В Python немає формального поділу підпрограм на функції і процедури.
В мові Python багато стандартних функцій, об'єднаних в модулі, наприклад, функції
модуля math.
Приклад. Розглянемо функцію з ім'ям abs, яка приймає на вхід один аргумент - об'єкт
числового типу і повертає абсолютне значення для цього об'єкта.

Ім’я функції
Аргумент функції >>> abs(-9)
9
>>> d = 1
Значення, що повертається: >>> n = 3
Аргумент функції абсолютне значення числа -9
>>> abs(d - n)
abs(-9)
2
>>> abs(-9) + abs(5.6)
Функція повертає абсолютне значення
-9
14.6
числа.
9
Аргумент може бути int або float
>>>
Створення власної процедури або функції

Для оголошення процедури або функції в Python використовується ключове слово def:

def function_name([parameters]): # parameters: параметри функції (через кому)


suite # Тіло функції

Функція в Python може повертати результат свого виконання, використовуючи оператор


return. В випадку, якщо він не був вказаний або вказаний порожній оператор return,
повертається спеціальне значення None.
def function_name([parameters]): # parameters: параметри функції(через кому)
suite # Тіло функції
return <result>

Результат виклику функції можна:


- приcвоїти зміній;
- використовувати в якості операндів математичних виразів, тобто складати більш
складні вирази.

Процедура відрізняється від функції тим, що функція в Python після виконання повинна
повертати якесь значення, а процедура просто виконує команди.
Припустимо, треба три рази поспіль ввести пару чисел і додавати їх. З цією метою можна
використовувати цикл:
i = 0 while i < 3:
a = int(input())
b = int(input())
print(a+b)
i += 1
Якщо перед кожним запитом чисел, треба виводити напис, навіщо вони потрібні, і
кожен раз цей напис різний ми не можемо перервати цикл, а потім повернутися до
того ж циклу знов. Доведеться відмовитися від нього.

print("Скільки бананів і ананасів для мавп?")


a = int(input())
b = int(input())
print("Всього", a+b, "шт.")
print("Скільки жуків и червяків для їжаків?")
a = int(input())
b = int(input())
print("Всього", a+b, "шт.")
print("Скільки риб і молюсків для видр?")
a = int(input())
b = int(input())
print("Всьго", a+b, "шт.")
def countFood():
a = int(input())
b = int(input())
print("Всього", a+b, "шт.")

print(" Скільки бананів і ананасів для мавп?")


countFood()

print(" Скільки жуків и червяків для їжаків?")


countFood()

print("Скільки риб и молюсків для видр?")


countFood()
Приклади:
1. Процедура «Пока!»
def sayGoodbye():
print('Пока!')
sayGoodbye() # виклик процедури

2. Процедура виведення символу «*»:


def printline(symbol,n):
print(symbol * n)
printline('*', 10) # виклик процедури

3. Функція знаходження максимального числа:


def max(x,y):
m=x
if y > m:
m=y
return m
x = int(input())
y = int(input())
print(max(x,y)) # виклик функції
Опис гри Старт
«Царство драконів»
Згідно з умовою, гравець Показати вступ
знаходиться в землях,
заселених драконами. Всі Гравець вибирає
дракони живуть в печерах печеру
повними скарбів, які вони
назбирали. Деякі дракони
доброзичливі і діляться
своїми скарбами. Інші – злі Перевірка дракона
і з'їдають кожного, хто
потрапляє в їх печеру. Гравець Гравець
Гравець наближається до програє перемагає
двох печер: одна - з
доброзичливим драконом,
а друга - зі злим. Гравець
повинен зробити вибір, не
знаючи, який з драконів Зіграємо
знову
йому зустрінеться.

Кінець
Сарт
import random
import time

def displaylntro():
print(‘’’Ви знаходитесь в землях, заселених драконами. Перед собою ви бачите дві
печери. В одній з них - доброзичливий дракон, який готовий поділитися з вами своїми
скарбами. У другій - жадібний і голодні дракон, який миттю вас з’їсть ‘’')
print()

def chooseCave():
cave = ''
while cave != '1' and cave != '2' :
print('В яку печеру ви ввійдете? (Натисніть клавішу 1 або 2)')
cave = input()
return cave

def checkCave(chosenCave) :
print('Ви наближаєтеся до печери...')
time.sleep(2)
print('Її темрява змушує вас тремтіти від страху...')
time.sleep(2)
print('Великий дракон вистрибує перед вами! Він розкриває свою пащу...')
print()
time.sleep(2)
«Показати вступ» - функция displayIntro()
«Гравець вибирає печеру» - функция chooseCave()
«Перевірка дракона» - функция checkCave(chosenCave)

У функції displayIntro () виводиться багаторядковий текст, в потрійних лапках.

Модуль time містить функцію sleep (), яка призупиняє виконання програми на 2
секунди.

You might also like