Функції – це частини коду, які можна використовувати повторно. Вони дозволяють дати назву певному блоку команд, щоб потім можна було викликати цей блок під вказаним ім'ям у будь-якій частині програми та скільки завгодно разів. Це називається викликом функції.
Функції визначаються за допомогою ключового слова def
. Після цього слова вказується ім'я функції, далі йдуть дужки, в яких можна вказати параметри (змінні), та двокрапка в кінці рядка. Потім слідує блок команд, що належать цій функції. Наприклад, це виглядає так:
def say_hello():
print('Привіт, Світ!') # Блок, що належить функції
# Виклик функції
say_hello()
# Ще один виклик функції
say_hello()
Ми визначили функцію з ім'ям say_hello
, використовуючи описаний синтаксис. Ця функція не приймає параметрів, тому дужки порожні. Параметри функції – це вхідні дані, які можна передати функції, щоб отримати відповідний результат.
Функції можуть приймати параметри, тобто значення, що передаються функції для виконання певних дій. Ці параметри схожі на змінні, але їх значення визначаються при виклику функції. Параметри вказуються в дужках при визначенні функції та розділяються комами. Зверніть увагу: імена, вказані при оголошенні функції, називаються параметрами, а значення, передані при виклику функції, – аргументами.
def print_max(a, b):
if a > b:
print(a, 'максимально')
elif a == b:
print(a, 'дорівнює', b)
else:
print(b, 'максимально')
print_max(3, 4) # Пряма передача значень
x = 5
y = 7
print_max(x, y) # Передача змінних у якості аргументів
Ми визначили функцію print_max
, яка використовує два параметри з іменами a
та b
. Функція порівнює ці два значення та виводить найбільше. При першому виклику print_max(3, 4)
ми передаємо числові значення напряму. У другому випадку ми передаємо значення змінних x
і y
. В обох випадках функція print_max
працює однаково.
У Python немає синтаксичної різниці між функціями та процедурами. Функція може повертати деякий результат своєї роботи, тоді як процедура просто виконує певні дії без повернення значення. Для повернення значення з функції використовується ключове слово return
. Наприклад, функція, що виконує додавання:
def plus(a, b):
return a + b
print(plus(3, 4)) # Виведе 7
Змінні, визначені всередині функції, є локальними і не впливають на змінні з тим самим ім'ям за межами функції. Це називається областю видимості змінної.
x = 50
def func():
x = 2
print('Зміна локального x на', x) # Зміна локального x на 2
func()
print('x як і раніше', x) # x як і раніше 50
У цьому прикладі значення x
, оголошене в основному блоці програми, залишається незмінним після виклику функції.
Щоб змінити значення змінної, визначеної на вищому рівні програми (тобто поза функцією), необхідно вказати Python, що ця змінна є глобальною, використовуючи ключове слово global
.
x = 50
def func():
global x
print('x дорівнює', x) # x дорівнює 50
x = 2
print('Змінюємо глобальне значення x на', x) # Змінюємо глобальне значення x на 2
func()
print('Значення x складає', x) # Значення x складає 2