muzruno.com

Функции в Python: def. Python 3 за начинаещи

В езиците за програмиране функциите са част от кода. Това са отделни блокове в текста на програмата. Определено с използване на запазената дума def. В Python функциите могат да бъдат достъпни неограничени пъти от всяка част от скрипта.python def

Защо се нуждаете от функции

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

Това е най-простият начин за опаковане на логиката за изпълнение на отделните части на програмата. Това намалява количеството и времето, които специалистът харчи за създаването на скрипт.

Как да напишете първата функция

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

Отворете менюто "Старт", а в списъка с програми, намерете Python 3. Разгънете го с левия бутон на мишката. В списъка, който се отваря, намерете среда IDLE и го стартирайте. Напишете печата ("Здравей, Свят!") И натиснете "Enter". Тълкувателят ще върне резултата от първата ви функция.

Някои програмисти предпочитат да работят в конзолата. Ако сте един от тях, натиснете win + R и въведете python.exe. Ще се отвори нормален преводач само с интерфейса cmd. Въведете програмата по начина, описан по-горе, и натиснете Enter в края, за да видите резултата.python 3 за начинаещи

Как да използвате def

Създават се нови функции, като се използва декларацията def. Те са толкова ефективни, колкото и вградените print () или open (), но се различават от функциите при съставянето на езици. Python def се отнася до изпълними инструкции. Това означава, че функцията не съществува, докато преводачът не я види и не отива при изпълнението му.

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

Сега нека да напишем функция, която връща фразата "Здравей, свят!", Само с def:

  • > def hello_mir ():
  • отпечатай ("Здравей, Свят!")
  • > hello_mir () # функционален разговор
  • Здравей, Светът!

Функционален синтаксис и връщане

Декларацията def в Python се състои от заглавна част и е написана съгласно следните правила:

  • > def <име> (аргумент 1, аргумент 2, аргумент N):

След като заглавката следва инструкциите, започвайки с задължително тире. В IDLE преводачът ще го направи автоматично. Но в бележника или друг текстов редактор можете да забравите да натиснете Tab. Тогава функцията няма да започне. Програмният код в блока за инструкции се нарича функция на тялото и се изпълнява всеки път, когато се извиква.

Също така в тялото понякога се връща:

  • деф <име> (аргумент 1, аргумент 2, аргумент N):
  • ...
  • връщане <стойност>

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

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

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

Аргументите в дадена функция не са свързани с обекти извън нея, така че те се наричат ​​локални променливи в програмирането. Обхватът е ограничен до функционален блок, който започва с def и завършва с връщане. За да стане ясно, нека да дадем пример:

  • x = 12 # задаване на променливи препратки към цели обекти
  • у = 34
  • > def пример (x, y): # създайте функция с име на пример
  • x = "Здравейте" # задайте стойности на аргументите x, y
  • y = "Python"
  • отпечатване (x, y, sep = «,»)
  • връщане Няма
  • > пример (x, y) # извикайте функцията, не забравяйте да зададете параметрите
  • Здравей, Питон
  • > отпечатване (x, y)
  • 12 34


Обърнете внимание на предпоследния ред на кода. В интерпретатора на Python командата print () връща променливите x и y от глобалния обхват.

Стойностите на аргументите не трябва да се задават във функцията, можете да ги въвеждате ръчно, когато я наричате:

  • > def E_2 (х, у):
  • връщане x + y
  • > E_2 ("Здравей", "Python!") # За да се разделят думите, поставете интервал преди заключителната оферта
  • Здравей, Питън!
  • Е_2 (5, 4)
  • 10

Както може да се види от примера с проста функция E_2, резултатът зависи изцяло от вида обекти x и y. В първия случай E_2 извърши конкатенация, а във втория случай - аритметичната операция на добавяне. Това е принципът на полиморфизма и динамично типизиране. Фактът, че обектите определят синтактичния смисъл, причинява гъвкавостта и простотата на езика. Не е нужно да отделяте време, за да определите типа данни, с който функцията работи.функцията python def

Правилото LEGB

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

Правилото LEGB обяснява схемата за разрешаване на име:

  1. След като преводачът намери променлива в декларацията def, първо търси в стойностите в локалния обхват.
  2. Ако търсенето не успее, то отива в обхвата на всяка изчерпателна декларация за дефекти.
  3. Тогава преводачът премества глобалните имена в най-горното ниво на модула и това, което е определено като глобално.
  4. Ако търсенето не успее, преводачът търси имена в вградения обхват на Python.

Да разгледаме илюстративен пример:

  • > L = 85
  • > R = 23
  • > def пример_2 (K):
  • R = 10
  • C = L + K + R
  • връщане C
  • > example_2 (5)
  • 100

Променливите L и R са на най-високо ниво и са глобални имена. R, C и K са локални променливи, тъй като присвояването на стойности възниква вътре в декларацията def.

Първоначално преводачът извършва операция за добавяне на локални R, C и K, като игнорира променливата R извън декларацията def. Тогава тя търси L и ако не го намери сред местните имена, то отива до най-високото ниво.

Какво е ламбда

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

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

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

На външен вид, изразите ламбда приличат на инструкциите за дефиниране. Първо, е написана ключовата дума ламбда, а след това аргументите, дебелото черво и самия израз:

  • > f = ламбда x, y, z: x + y + z
  • > f (2, 3, 4)
  • 9

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

За ламбда правилата за търсене на променливи са същите като при def. Имената, посочени извън израза, са глобални, вътрешни - локални и не засягат по никакъв начин.

Ламбда изразите са много удобни за вграждане в програмата. Поради малкия си размер те намаляват и опростяват кода. Но използването на ламбда не е от съществено значение. В Python 3, инструкцията def е достатъчна за начинаещи.

Споделяне в социалните мрежи:

сроден