Функції можуть передавати будь-які дані зі своїх тіл в основну гілку програми. Кажуть, що функція повертає значення. У більшості мов програмування, в тому числі Python, вихід з функції і передача даних в те місце, звідки вона була викликана, виконується оператором return.
Якщо інтерпретатор Python, виконуючи тіло функції, зустрічає return, то він "забирає" значення, вказане після цієї команди, і "виходить" з функції.
Приклад. Знайти суму площ квадрата (зі стороною а) та прямокутника (з сторонами а та b).
У даній програмі в основну програму з функції повертається значення локальної змінної full. Не сама змінна, а її значення, в даному випадку - якесь число, отримане в результаті обчислення суми площ квадрата та прямокутника.
В основній гілці програми це значення присвоюється змінній square. Тобто вираз square =S() виконується так:
Викликається функція S().
З неї повертається значення.
Це значення присвоюється змінної square.
!!! Не обов'язково привласнювати результат змінній, його можна відразу вивести на екран: print (S( ) )
Не можна використати змінні, створені в тілі функції, після того, як ця функція завершить роботу. Ці змінні існують тільки під час її виконання. У таких випадках говорять, що область видимості змінних обмежена.
Змінні, створені всередині тіла функції, є локальними — їх «не видно» з інших функцій і з основної програми.
Якщо змінна створена в основній програмі, вона є глобальною і її можна використовувати у всіх наступних командах і в будь-якій функції. Якщо потрібно змінити глобальну змінну всередині функції, то слід використовувати ключове слово global.
Приклад. Алгоритм знаходження НСД та НСК двох чисел m і n.
НСД(m, n) описав в ІІІ ст. до н. е. Евклід: поки a ≠ b, від більшого числа віднімати менше.
Алгоритм знаходження НСД:
функція НСД(m, n)
якщо m = 0
поверни n
поки n ≠ 0
якщо m > n
m := m − n
інакше
n:= n − m
поверни m
Завдання 1. Знайдіть НСД та НСК чисел:
1. 45 та 30
2. 100 та 99
3. 36 та 2
(Щоб виконати це завдання, послідовно впишіть в команди print ('НСД='+ str(nsd(94, 54))) та print ( 'НСК='+str(nsk (94, 54)))
числа із варіантів 1.-3.)