Новини високих технологій
» » Функції в Python: def. Python 3 для початківців

Функції в Python: def. Python 3 для початківців

12-12-2017, 21:36
1 555
У мовах програмування функції є іменованої частиною коду. Це окремі блоки в тексті програми. Визначаються за допомогою зарезервованого слова def. В Python до функцій можна звертатися необмежену кількість разів з будь-якої частини сценарію.

Навіщо потрібні функції

Функції – це незамінний інструмент програміста. З їх допомогою розробник структурує програму, роблячи її зрозумілішою і компактніше. З допомогою функцій можна домогтися багаторазового використання окремої частини коду без його повторного написання.


Це найпростіший спосіб упакувати логіку виконання окремих частин програми. При цьому скорочується обсяг і час, який фахівець витрачає на створення сценарію.

Як написати першу функцію

В Python 3 для початківців своє знайомство з програмуванням є найпростіша функція print(). Щоб побачити її в дії вам знадобиться середовище розробки. Для цього скачайте дистрибутив мови з офіційного сайту і встановіть Python на комп'ютер. Відкрийте меню «Пуск» і в списку програм знайдіть Python 3. Розгорніть його клацанням лівої клавіші. У списку знайдіть середу IDLE і запустіть її. Наберіть print(«Hello, World!») і натисніть «Enter». Інтерпретатор поверне результат вашої першої функції. Деякі програмісти вважають за краще працювати в консолі. Якщо ви ставитеся до їх числа, натисніть win+R і введіть команду python.exe. Відкриється звичайний інтерпретатор, тільки з інтерфейсом cmd. Наберіть програму описаним вище чином і натисніть Enter в кінці, щоб побачити результат.



Як використовувати def

Нові функції створюються з допомогою інструкції def. Вони так само ефективні, як і вбудовані print() або open(), але відрізняються від функцій компилирующих мовами. Python def відноситься до виконуваних інструкцій. Це означає, що функції не існує, поки інтерпретатор її не побачить, і не перейде до її виконання. Інструкція def створює новий об'єкт і дає йому назву. Тобто коли інтерпретатор приступає до реалізації, він створює новий об'єкт і зв'язує його з ім'ям, зазначеним після def. Щоб зберігати дані до функцій можна прикріплювати різні атрибути. Тепер давайте напишемо функцію, яка повертає фразу «Hello, World!», лише з використанням def: def здравствуй_мир(): print(«Hello, World!») здравствуй_мир() #виклик функції Hello, World!

Синтаксис функцій і return

Інструкція def в Python складається з заголовка і пишеться за такими правилами: def (аргумент 1 аргумент 2 аргумент N): Після заголовка слід блок інструкцій, який починається з обов'язкового відступу. В IDLE інтерпретатор зробить його автоматично. Але в блокноті або іншому текстовому редакторі ви можете забути натиснути Tab. Тоді функція не запуститься. Програмний код в блоці інструкції називається тілом функції і виконується кожен раз при її виклику. Також в тілі іноді знаходиться return: def (аргумент 1 аргумент 2 аргумент N): return Return завершує роботу функції і передає викликає програмі об'єкт-результат. Інструкція не є обов'язковою. Функція буде працювати без return, і завершиться, коли потік управління досягне кінця її тіла.

Параметри та аргументи

Кожної функції можна передавати параметри, які вказуються в дужках після def. В Python вони записуються як змінні, розділені комами. Значення або посилання на об'єкти цим іменам присвоюються в блоці за двокрапкою. Після операції присвоєння їх прийнято називати аргументами, а не параметрами. Аргументи всередині функції ніяк не пов'язані з об'єктами поза її, тому в програмуванні їх відносять до локальних змінних. Область видимості обмежена блоком функції, що починається з def і закінчується return. Щоб було зрозуміліше, наведемо приклад: x = 12 #присвоюємо змінним посилання на цілочисельні об'єкти y = 34 def example(x,y): #створюємо функцію з ім'ям example x = «Hello» #присвоюємо значення аргументів x, y y = «Python» print(x, y, sep= «, ») return None example(x, y) #викликаємо функцію, не забувши вказати параметри Hello, Python print(x, y) 1234 Зверніть увагу на передостанню сходинку коду. У інтерпретатор Python команда print() повернула змінні x і y з глобальній області видимості. Значення аргументів не обов'язково вказувати всередині функції, можна вписати їх вручну при її виклику: def E_2(x, y): return x + y E_2(«Hello, » «Python!») #щоб слова були розділені, поставте пробіл перед закриває лапками Hello, Python! E_2(5 4) 10 Як видно з прикладу з простою функцією E_2 результат повністю залежить від типу об'єктів x і y. У першому випадку E_2 виконала конкатенацию, а в другому - арифметичну операцію додавання. У цьому полягає принцип поліморфізму та динамічної типізації. Те, що об'єкти визначають синтаксичний смисл, обумовлює гнучкість і простоту мови. Не потрібно витрачати час на те, щоб окремо вказати тип даних, з яким працює функція.

Правило LEGB

Це правило стосується роботи зі змінними в різних областях видимості. За замовчуванням усі імена, які ви створюєте в тілі функції, вважаються локальними. А імена в модулі є глобальними. При бажанні іменах можна присвоїти значення змінних верхнього рівня з допомогою інструкції notlocal і global. Правило LEGB пояснює схему дозволу імен: Як тільки інтерпретатор знаходить змінну всередині інструкції def, спочатку він виконує пошук значень в локальній області видимості. Якщо пошук не дає результату, він переходить до області видимості будь всеосяжної інструкції def. Далі інтерпретатор рухається до глобальних імен у верхньому рівні модуля і тим, що позначені як global. Якщо пошук не дає результатів, інтерпретатор шукає імена у вбудованій області видимості мови Python. Розглянемо конкретний приклад: L = 85 R = 23 def пример_2(K): R = 10 C = L + K+R return C пример_2(5) 100 Змінні L і R знаходяться на верхньому рівні і є глобальними іменами. R, C і K – це локальні змінні, так як присвоювання значення відбувається всередині інструкції def. Інтерпретатор виконує операцію додавання для локальних R, C і K, ігноруючи змінну R поза інструкції def. Потім шукає L, і не знайшовши її серед імен local, переходить на верхній рівень.

Що таке lambda

Крім def, Python функції можна створювати за допомогою спеціальних висловів, одне з яких - lambda. Свою оригінальну назву отримала на честь лямбда-числення мови LISP. Як і def, lambda створює функцію, яку можна буде надалі викликати, але не пов'язує її з яким-небудь ім'ям. На практиці lambda використовують, коли потрібно відкласти виконання фрагмента коду.

Основи лямбда-виразів

За зовнішнім виглядом лямбда-вирази нагадують інструкції def. Спочатку пишеться ключове слово lambda, потім аргументи, двокрапка й сам вираз: f = lambda x, y, z: x + y + z f(234) 9 Тіло лямбда являє собою одне єдине вираження, а не блок інструкцій. За рахунок цього lambda обмежена в можливостях і не настільки універсальна як def. У ній може бути реалізована тільки логіка, без циклів while або for. Для лямбда діють аналогічні з def правила пошуку змінних. Імена, зазначені поза вираження, є глобальними, всередині – локальними, і вони ніяк не впливають один на одного. Лямбда-виразу дуже зручно вбудовувати в програму. За рахунок невеликого розміру вони мінімізують і спрощують код. Але використання лямбда не є принциповим. В Python 3 початківцям для роботи буде досить інструкції def.
Цікаво по темі
Умовна конструкція if. Python: обширність і простота мови
Умовна конструкція if. Python: обширність і простота мови
Простота Python дозволяє новачкам вивчати програмний мову. Наявність різних методів, функцій, бібліотек, конструкцій і циклів дозволяє вирішувати
Python: типи даних, умови, вимоги і приклади
Python: типи даних, умови, вимоги і приклади
Основними типами даних в Python відносяться числа, рядки, словники, списки, кортежі, множини і логічні значення. Вони є базовими, вбудованими
Програмування Python. Робота з рядками
Програмування Python. Робота з рядками
У повсякденному житті програмісту потрібно вирішувати масу завдань. Для цих цілей ідеально підходить мову Python. Резервне копіювання, створення гри
Як знайти в Python залишок від ділення?
Як знайти в Python залишок від ділення?
Python – простий, сучасний мову для написання коду. Він володіє потужними бібліотеками, здатними обчислити будь-який вираз. Запустивши в
Введення і виведення в Python. Input і print
Введення і виведення в Python. Input і print
Приємне спілкування користувача з Python – одна з багатьох привабливих рис програми. Простота, сучасність, лаконічність і зрозумілість – ось чим
Python - середовище розробки. Python 3 для початківців
Python - середовище розробки. Python 3 для початківців
Python - один з найперспективніших сучасних мов програмування. Він гнучкий і простий, його код прозорий і дуже зрозумілий: от за що багато