Функции на Python


В тази статия ще обсъдим функциите на Python.

Какво е функция

Във всеки език за програмиране функция се дефинира като:

  • като блоков код, който се изпълнява само когато е извикан.
  • които могат да приемат вход.
  • което може да върне изхода като резултат.

Създайте функция в Python

В python функция може да бъде създадена с помощта на деф ключова дума, последвана от името на функцията.

def my_function():
  print("Hello")
  • def - ключова дума за означаване, че това е функция.
  • my_function - името на функцията, което може да бъде всяко име
  • () - където можем да предадем аргументите (входовете) на функцията. В горната функция не предаваме никакви аргументи, така че има празна скоба.
  • Кодът следва ключовата дума def на същото ниво на отстъп ще бъде изпълнен при извикване на функцията.

В горния пример създаваме функция, наречена „my_function“, която ще отпечата „Hello“, когато функцията бъде извикана.

Извикайте функция в Python

Ако изпълните горния код, нищо няма да се отпечата, защото все още не извикваме функцията. Тъй като не предаваме никакви аргументи на функцията, ние извикваме функцията с празни скоби.

def my_function():
  print("Hello")

my_function()

Предаване на аргументи на функцията Python

Понякога трябва да предадем допълнителна информация на функцията в името на аргументите. Аргументите са дадени в скобите.

def my_function(name):
  print("Hello"+' '+name)

my_function()

Горната функция приема променлива, наречена „име“ като аргумент. Ако функция приема входни параметри, трябва да споменем това, докато извикваме и функцията. В противен случай ще доведе до грешка. Изпълнете кода и проверете грешката. От грешката можем да разберем, че трябва да предадем стойност за променливата 'name', докато извикваме функцията.

def my_function(name):
  print("Hello"+' '+name)

my_function("Mary")

Можем да предадем колкото се може повече аргументи на функцията python, последвана от запетая.

def my_function(fname,lname):
  print("Hello"+' '+fname+' '+lname)

my_function("Mary","Smith")

Аргументите могат да бъдат от всеки тип данни.

def my_function(l):
  for i in l:
    print(i)
  
my_function([1,2,3,4,5])

Аргументите могат да бъдат комбинация от типове данни.

def my_function(fname,lname,l):
  print(fname+' '+lname)
  for i in l:
    print(i)

my_function("Mary","Smith",[1,2,3,4,5])

Все още имаме още няколко неща, които да бъдат обхванати от функциите на Python.

Връщаща стойност от функция в Python

Можем да върнем изхода на функция с помощта на връщане ключова дума.

def my_function(fname,lname): 
  name=fname+' '+lname
  return name

my_function("Mary","Smith")

Горният код няма да отпечата нищо, защото връщаме стойността, но не я улавяме никъде. За да уловим върнатата стойност, можем да използваме:

функция за печат в Python

def my_function(fname,lname): 
  name=fname+' '+lname
  return name

print(my_function("Mary","Smith"))

Запазване на връщаната стойност в променлива

def my_function(fname,lname): 
  name=fname+' '+lname
  return name

output=my_function("Mary","Smith")
print(output)

Можем да запишем върнатата стойност в променлива и да я използваме навсякъде, където е необходимо.

Върнете множество стойности в Python

Можем да върнем кратни стойности от функция, като върнем стойностите, разделени със запетая.

def my_function(l): 
  l.sort()
  smallest_number=l[0]
  largest_number=l[-1]
  return smallest_number,largest_number

smallest_number,largest_number=my_function([7,8,2,11,20])
print(smallest_number,largest_number)

В горния пример ние предаваме списъка като аргумент на функцията и връщаме най-малкото и най-голямото число като изход. За да получим най-малкото и най-голямото число, ние сортираме списъка във възходящ ред, така че първият елемент ще бъде най-малкият, а последният - най-голям.

Предимства на функцията в Python

За да разберем предимството на използването на функцията, нека разгледаме следния пример:

def my_function(l): 
  l.sort()
  smallest_number=l[0]
  largest_number=l[-1]
  print(smallest_number,largest_number)

my_function([7,8,2,11,20])
my_function([9,1,4,2,7])
my_function([50,30,100,20,250])

Накратко можем да кажем, че горната функция приема списъка като аргумент и отпечатва най-малкия и най-големия в списъка.

Извикваме функцията 3 пъти с различен вход. И изходът се отпечатва според входа. Как бихме постигнали без функции?

l1=[7,8,2,11,20])
l2=[9,1,4,2,7])
l3=[50,30,100,20,250]
l1.sort()
smallest_number=l1[0]
largest_number=l1[-1]
print(smallest_number,largest_number)
l2.sort()
smallest_number=l2[0]
largest_number=l2[-1]
print(smallest_number,largest_number)
l3.sort()
smallest_number=l3[0]
largest_number=l3[-1]
print(smallest_number,largest_number)

Можем да кажем, че в горния код има много повтарящи се редове и изглежда голям.

Винаги, когато има повтарящ се код, можем да го заменим с функция и да го извикаме навсякъде, където е необходимо. А използването на функции прави кода малък и лесен за разбиране.

Препратки

Референтен номер1

Оператори на Python