Като програмист често ще установите, че извършвате действие или задача многократно. Това може да бъде досадно и отнема много време, особено когато работите с голяма или сложна кодова база. Автоматизирането им с функции е по-ефективен подход за изпълнение на такива задачи. Функциите ви позволяват да напишете логиката на кода веднъж и да я използвате навсякъде във вашата програма.
Какво е функция на Python?
В Python функцията е блок от код, използван за изпълнение на конкретна задача. Трябва да напишете функция само веднъж, но можете да я използвате многократно във вашия код. Функцията може да приема аргументи като входни и да връща изходни стойности. Тази проста програма показва функция, която изчислява сумата от три числа:
# Python функция за изчисляване на сумата от три числа
дефизчисляване_сума(а, б, в):
връщане a+b+c
печат (изчисли_сума(1,2,3)) # връща 6
печат (изчисли_сума(1000, 300,44)) # връща 1344
печат (изчисли_сума(12, 4,78)) # връща 94
В горната програма функцията връща сумата от три аргумента. Когато функцията се извиква многократно, тя връща различен резултат за всеки случай. Полезно приложение за тази функция ще бъде приложението за калкулатор.
Дефиниране на функция в Python
Python има много вградени функции достъпни за използване от разработчиците. Въпреки това, тези вградени функции не винаги са достатъчни, за да отговорят на изискванията на повечето проекти. За да отговорите на персонализираните изисквания, трябва да дефинирате вашите персонализирани функции. Дефинирането на персонализирани функции е обичайна практика в програмирането.
В Python можете да дефинирате персонализирана функция, като използвате деф ключова дума, последвана от името на вашата функция със скоби пред нея. Ето един пример:
дефиме_на_функция()
Трябва да вземете под внимание тези правила, когато присвоявате име на функция в Python:
- Имената на функциите трябва да са с малки букви.
- Имената на функциите трябва да са описателни.
- Използвайте долни черти, за да разделите думите в името на функцията.
След като дефинирате функцията, трябва да напишете логиката, за да изпълните желаната от вас задача. Например, тази функция изчислява площта на триъгълник:
# Python функция за изчисляване на площта на триъгълник
дефизчисли площ_на_триъгълник(основа, височина):
площ = (основа * височина)/2
връщане ■ площ
печат (изчисляване на_площ_на_триъгълник(12, 3))
Функцията по-горе дефинира два параметъра: база и височина, разделя техния продукт на две и връща резултата като изход. Можете да напишете каквато логика искате вашата функция да изпълнява.
Разбиране на функционалните аргументи
В предишните примери функциите са приемали аргументи за извършване на действия. Аргументите в тези примери са известни като задължителни или позиционни аргументи. В Python вашите аргументи могат да бъдат едно от следните:
- Позиционни аргументи
- Аргументи на ключови думи
Позиционни аргументи
Позиционните аргументи трябва да се предават в правилния ред на дефиниране. Например, ако дефинирате функция с параметри а, б, и ° С, трябва съответно да подадете стойности за тези параметри, когато ги извиквате. Нека разгледаме предишен пример:
# Python функция за изчисляване на сумата от три числа
дефизчисляване_сума(а, б, в):
връщане a+b+c
печат (изчисли_сума(1,2,3)) # връща 6
печат (изчисли_сума(1000, 300,44)) # връща 1344
печат (изчисли_сума(12, 4,78)) # връща 94
В горната програма, изчисляване_сума() функцията приема три аргумента, когато я извикаме. Всеки аргумент представлява съответен параметър. В първото извикване на функция, числа 1, 2, и 3 представлявам а, б, и ° С съответно.
Параметърът се декларира в дефиницията на функция, докато аргументът е стойността, предадена, когато извикате функцията. Тази стойност е представяне на съответния й параметър.
Позиционните аргументи са задължителни. Ако не ги добавите, ще получите a TypeError. Следният пример демонстрира това:
дефизчисляване_сума(а, б, в):
връщане a+b+c
печат (изчисли_сума(1,2)) # повдига TypeError
Когато стартирате горната програма на вашата машина, ще получите грешка, подобна на тази на изображението по-долу:
Аргументи на ключови думи
Аргументите на ключови думи не е задължително да се предават, когато извиквате функция. Те са незадължителни аргументи и не е необходимо да следват определен ред. Python ни позволява да използваме *args и **kwargs за указване на аргументи на ключови думи.
Освен използването на *арг и **kwargs, също е възможно да посочите стойности по подразбиране за вашите аргументи. Правейки това, няма да получите грешка, ако забравите да добавите стойност при извикване на функцията. Този пример дава илюстрация:
дефизчисляване_сума(a, b, c=3):
връщане a+b+c
печат (изчисли_сума(1,2)) # връща 6
В горната програма, когато изчисляване_сума() се нарича, няма аргумент за ° С; това няма да повлияе на програмата, защото ° С вече има стойност по подразбиране. Можете да посочите стойности по подразбиране за толкова аргументи, колкото искате, но се уверете, че правите това разумно.
Използвайте функции, за да организирате своя код
Функциите са полезни за организиране на вашия код, което го прави по-четлив и ефективен. С функциите можете да разделите кода си на по-малки парчета за многократна употреба, които са по-лесни за разбиране и поддръжка. Освен това, ако трябва да направите промени в кода си, трябва да промените само необходимата функция, а не цялата кодова база.