Как да извикате функция в Python (Пример)

⚡ Умно обобщение

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

  • 🧩 деф. изявление: Функцията се дефинира с def, име и скоби, последвани от двоеточие, което отваря отстъпения блок от оператори.
  • 📞 Извикване на функции: Записването на името на функцията, последвано от скоби, изпълнява нейния код, така че една и съща логика може да се използва многократно.
  • отстъп: Python групира тялото на функцията чрез последователно отстъпване вместо чрез скоби, така че липсващо място поражда IndentationError.
  • 🎯 аргументи: Стойностите, предадени в скобите, стават параметри, а стойностите по подразбиране или ключовите думи правят всяко извикване гъвкаво.
  • ↩️ Върнати стойности: Операторът return предава резултат обратно на извикващата функция; без него, функцията връща None.
  • 🤖 AI помощ: Асистенти с изкуствен интелект, като например GitHub Copilot, генерират функционални скелети, аргументи и документационни низове от кратък промпт.

Как да извикате функция в Python

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

A Функция в Python е част от код, която се изпълнява, когато бъде посочена. Използва се за използване на кода на повече от едно място в програмата. Нарича се още метод или процедура. Python предоставя много вградени функции като print(), input(), compile() и exec(), но също така ви дава свободата да създавате свои собствени функции.

Как да дефинираме и извикаме функция в Python

Функция в Python се дефинира от оператора „def“, последван от името на функцията и скоби ( () ).

Пример:

Нека дефинираме функция, като използваме командата „def func1():“ и я извикаме. Изходът на функцията ще бъде „Уча се“ Python функция “.

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

Извикването на функцията func1() извиква нашата def func1(): и отпечатва командата „Уча се Python функция „Няма“.

Има набор от правила в Python програмиране за дефиниране на функция.

  • Всички аргументи или входни параметри трябва да бъдат поставени в тези скоби.
  • Първото изречение на функцията може да бъде незадължително изречение — документационният низ или низът за документация на функцията.
  • Кодът във всяка функция започва с двоеточие (:) и трябва да бъде с отстъп (интервал).
  • Операторът return (израз) излиза от функция, като по избор връща стойност на извикващата функция. Оператор return без аргументи е същият като return None.

Значение на отстъп (интервал) в Python

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

Python следва специфичен стил на отстъпи, за да дефинира кода. Тъй като Python Функциите нямат изрично начало или край, както къдравите скоби, за да посочат началото и края на функцията, те трябва да разчитат на това отстъпване. Тук ще вземем един прост пример с командата „print“. Когато напишем функцията „print“ точно под реда def func1():, тя ще покаже „грешка при отстъпване: очаква се блок с отстъп“.

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

Сега, когато добавите отстъпа (интервала) пред функцията „print“, тя би трябвало да се отпечата както се очаква.

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

Поне един отстъп е достатъчен, за да работи кодът ви успешно. Но като най-добра практика е препоръчително да оставите около 3-4 места с отстъп, за да извикате функцията си.

Необходимо е също така, когато декларирате отстъп, да запазите същия отстъп за останалата част от кода си. Например, на екранната снимка по-долу, когато извикаме друг оператор „still in func1“ и той не е деклариран точно под първия оператор print, ще се покаже грешка при отстъп: „unindent не съответства на никое друго ниво на отстъп“.

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

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

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

Как функционира връщаната стойност?

Командата за връщане в Python указва каква стойност да се върне на извикващия функцията. Нека разберем това със следния пример.

Стъпка 1) Функцията не връща нищо

Тук виждаме кога една функция не „връща“. Например, искаме квадрата на 4 и резултатът трябва да бъде „16“, когато кодът се изпълни. Това се получава, когато просто използваме кода „print x*x“, но когато извикате функцията „print square“, тя връща „None“ като изход. Това е така, защото когато извикате функцията, рекурсията не се случва и тя отпада в края на функцията. Python връща „None“ при попадане в края на функцията.

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

Стъпка 2) Заменете командата за печат с команда за присвояване

За да стане това по-ясно, заместваме командата print с команда за присвояване. Нека проверим изхода.

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

Когато изпълните командата „print square (4)“, тя всъщност връща стойността на обекта. Тъй като нямаме никаква специфична функция, която да изпълним тук, тя връща „None“.

Стъпка 3) Използвайте функцията „return“ и изпълнете кода

Сега ще видим как да извлечем изхода, използвайки командата „return“. Когато използвате функцията „return“ и изпълните кода, ще получите изход „16“.

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

Стъпка 4) Изпълнете командата 'print square'

Функции в Python сами по себе си са обект и обектът има някаква стойност. Тук ще видим как Python третира обект. Когато изпълните командата „print square“, тя връща стойността на обекта. Тъй като не сме предали никакъв аргумент, нямаме никаква специфична функция, която да изпълним тук, така че връща стойност по подразбиране (0x021B2D30), която е местоположението на обекта. На практика Python програма, вероятно никога няма да ви се наложи да правите това.

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

Аргументи във функциите

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

С други думи, от страната на извикващата функция това е аргумент, а от страната на функцията е параметър.

Нека видим как Python аргументите работят.

Стъпка 1) Аргументите се декларират в дефиницията на функцията. При извикване на функцията можете да предадете стойностите на тези аргументи, както е показано по-долу.

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

Стъпка 2) За да декларирате стойност по подразбиране за аргумент, присвоете му стойност в дефиницията на функцията.

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

Пример: x няма стойност по подразбиране. Стойността по подразбиране на y = 0. Когато предоставим само един аргумент при извикване на функцията за умножение, Python присвоява предоставената стойност на x, докато keeping стойността на y=0. Следователно умножението на x*y=0.

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

Стъпка 3) Този път ще променим стойността на y=2 вместо стойността по подразбиране y=0 и ще върнем резултата като (4×2)=8.

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

Стъпка 4) Можете също да промените реда, в който се предават аргументите PythonТук сме обърнали реда на стойностите x и y на x=4 и y=2.

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

Стъпка 5) Множество аргументи могат да се предават и като масив. В примера извикваме множеството аргументи (1,2,3,4,5), като извикаме функцията (*args).

Пример: Декларирахме множество аргументи като числата (1,2,3,4,5); когато извикаме функцията (*args), тя отпечатва изхода като (1,2,3,4,5).

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

Съвет:

  • In Python 2.7, претоварването на функции не се поддържа. Претоварването на функции е възможността за създаване на множество методи с едно и също име с различна имплементация. Претоварването на функции е напълно поддържано в Python 3.
  • Съществува доста объркване между методи и функции. Методи в Python са свързани с екземпляри на обекти, докато функциите не са. Когато Python извиква метод, той свързва първия параметър на това извикване към съответната препратка към обект. С прости думи, самостоятелна функция в Python е „функция“, докато функция, която е атрибут на клас или екземпляр, е „метод“.

Ето пълния Python 3 код

#define a function
def func1():
   print ("I am learning Python function")
   print ("still in func1")
   
func1()

def square(x):
  	return x*x
print(square(4))

def multiply(x,y=0):
	print("value of x=",x)
	print("value of y=",y)
    
	return x*y
  
print(multiply(y=2,x=4))

Ето пълния Python 2 код

#define a function
def func1():
   print " I am learning Python function"
   print " still in func1"
   
func1()

def square(x):
  	return x*x
print square(4)

def multiply(x,y=0):
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply(y=2,x=4)

Въпроси и Отговори

Да. A Python Функцията може да върне множество стойности, като ги раздели със запетаи след ключовата дума return. Python пакетира ги в кортеж, който извикващият може да разархивира в отделни променливи, например a, b = func().

*args събира допълнителни позиционни аргументи в кортеж, докато **kwargs събира допълнителни ключови аргументи в речник. И двете позволяват на функцията да приема променлив брой входни данни, а имената args и kwargs са само конвенция, а не изискване.

Документиращият низ е низов литерал, поставен като първо изречение във функция, за да документира какво прави тя. Той е написан в тройни кавички и може да бъде прочетен по време на изпълнение чрез атрибута __doc__ на функцията или чрез функцията help().

Ламбда функцията е малка анонимна функция, дефинирана на един ред с ключовата дума lambda вместо def. Тя е подходяща за кратка, еднократна логика, предавана на функции като map(), filter() и sorted(). Вижте това ламбда функция напътства.

Да. Функция, която извиква себе си, е рекурсивна функция. Рекурсията решава проблеми, които се разделят на по-малки подобни подзадачи, като например факториели. Всяка рекурсивна функция се нуждае от базов случай, който спира извикванията, в противен случай... Python поражда RecursionError.

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

GitHub Copilot предлага пълно тяло на функцията от името ѝ или кратък коментар, включително параметри, return оператори и docstrings. Той също така предлага обработка на гранични случаи и тестове, което ви позволява да се съсредоточите върху логиката, вместо върху ти...ping шаблонни дефиниращи блокове.

Функциите организират кода за изкуствен интелект и машинно обучение в стъпки за многократна употреба, като зареждане на данни, предварителна обработка, обучение и оценка. Те поддържат експериментите четливи и тестваеми, а рамки като TensorFlow и scikit-learn разкриват по-голямата част от поведението им чрез добре наименувани функции, които извиквате.

Обобщете тази публикация с: