Treci la conținutul principal

Argumente

Funcțiile pot primi informații din exterior prin argumente.

Argumentele se scriu între parantezele de după numele funcției. Nu există o limită fixă pentru câte poți adăuga; doar pune o virgulă între ele.

Funcția din exemplul următor are un singur argument, fname. Fiecare apel îi transmite un prenume, iar funcția folosește acel prenume ca să afișeze numele complet.

Exemplu

Un argument, trei apeluri:

Prompt
Scrie o funcție care primește fname ca parametru și afișează numele urmat de "Refsnes". Apeleaz-o cu "Emil", "Tobias" și "Linus".
Ieșire: program Python complet

Parametri vs argumente

Oamenii folosesc adesea parametru și argument ca termeni interschimbabili, deoarece ambii înseamnă informații transmise unei funcții.

Din perspectiva funcției:

Parametrul este variabila scrisă între parantezele din definiția funcției.

Argumentul este valoarea reală pe care funcția o primește când cineva o apelează.

main.py
def my_function(name): # name is a parameter
  print("Hello", name)

my_function("Emil") # "Emil" is an argument

Numărul de argumente

În mod normal, numărul de argumente dintr-un apel trebuie să corespundă cu ce așteaptă funcția.

O funcție care are nevoie de 2 argumente trebuie să primească exact 2.

Dă-i mai multe sau mai puține și Python raportează o eroare.

Exemplu

Această funcție are nevoie de 2 argumente și primește 2:

Prompt
Scrie o funcție care primește fname și lname și le afișează împreună. Apeleaz-o cu "Emil" și "Refsnes".
Ieșire: program Python complet

Exemplu

Aceasta are nevoie de 2 argumente, dar primește doar 1:

Prompt
Arată ce se întâmplă când o funcție care așteaptă 2 argumente este apelată cu doar 1. Definește o funcție cu fname și lname, apoi apeleaz-o doar cu "Emil".
Ieșire: program Python complet

Valori implicite ale parametrilor

Un parametru poate avea o valoare implicită. Funcția recurge la acea valoare ori de câte ori un apel omite argumentul:

Exemplu

Prompt
Scrie o funcție cu parametrul implicit name = "prieten" care afișează un salut. Apeleaz-o cu "Emil", "Tobias", fără argument și cu "Linus".
Ieșire: program Python complet

Exemplu

Un parametru country cu valoare implicită:

Prompt
Scrie o funcție cu parametrul implicit country = "Norway" care afișează „Sunt din” urmat de țară. Apeleaz-o cu "Sweden", "India", fără argument și cu "Brazil".
Ieșire: program Python complet

Argumente cu cuvânt-cheie

Argumentele pot fi trimise și în forma cheie = valoare.

Deoarece fiecare valoare este etichetată cu numele ei, ordinea în care le scrii nu mai contează.

Documentația Python prescurtează adesea Keyword Arguments (argumente cu cuvânt-cheie) ca kwargs.

Exemplu

Prompt
Scrie o funcție care primește parametrii animal și name și afișează informații despre un animal de companie. Apeleaz-o folosind argumentele cu cuvânt-cheie animal = "câine" și name = "Buddy".
Ieșire: program Python complet

Exemplu

Prompt
Scrie o funcție care primește parametrii animal și name. Apeleaz-o cu argumente cu cuvânt-cheie în ordine inversă: name = "Buddy", animal = "câine".
Ieșire: program Python complet

Argumente poziționale

Argumentele transmise fără cuvinte-cheie se numesc argumente poziționale.

Python le asociază cu parametrii după poziție, așa că trebuie să fie în ordinea corectă.

Dacă le inversezi, obții alt rezultat.

Exemplu

Prompt
Scrie o funcție care primește parametrii animal și name. Apeleaz-o cu argumentele poziționale "câine" și "Buddy".
Ieșire: program Python complet

Exemplu

Schimbarea ordinii dă un rezultat diferit:

Prompt
Arată ce se întâmplă când argumentele poziționale sunt transmise în ordine greșită. Apelează o funcție care așteaptă (animal, name) cu ("Buddy", "câine").
Ieșire: program Python complet

Combinarea argumentelor poziționale și a celor cu cuvânt-cheie

Un singur apel de funcție poate folosi atât argumente poziționale, cât și argumente cu cuvânt-cheie.

Singura regulă este ca cele poziționale să fie primele:

Exemplu

Prompt
Scrie o funcție cu parametrii animal, name și age. Apeleaz-o combinând argumente poziționale și argumente cu cuvânt-cheie.
Ieșire: program Python complet

Transmiterea diferitelor tipuri de date

Argumentele pot fi de orice tip de date: șir, număr, listă, dicționar și așa mai departe.

În interiorul funcției, valoarea păstrează același tip pe care îl avea când ai trimis-o:

Exemplu

Transmiterea unei liste către o funcție:

Prompt
Scrie o funcție care primește o listă de fructe și afișează fiecare fruct. Transmite-i lista ["apple", "banana", "cherry"].
Ieșire: program Python complet

Exemplu

Transmiterea unui dicționar către o funcție:

Prompt
Scrie o funcție care primește un dicționar despre o persoană și afișează numele și vârsta. Transmite-i {"name": "Emil", "age": 25}.
Ieșire: program Python complet

Valori returnate

Instrucțiunea return îi permite unei funcții să dea înapoi o valoare:

Exemplu

Prompt
Scrie o funcție care primește x și y și returnează suma lor. Apeleaz-o cu 5 și 3 și afișează rezultatul.
Ieșire: program Python complet

Returnarea diferitelor tipuri de date

O valoare returnată poate fi de orice tip de date, de exemplu o listă, un tuplu sau un dicționar.

Exemplu

Returnarea unei liste:

Prompt
Scrie o funcție care returnează o listă de trei fructe. Afișează fiecare fruct separat.
Ieșire: program Python complet

Exemplu

Returnarea unui tuplu:

Prompt
Scrie o funcție care returnează tuplul (10, 20). Despachetează-l în x și y și afișează-le.
Ieșire: program Python complet

Argumente doar poziționale

O funcție poate cere să primească DOAR argumente poziționale.

Faci asta adăugând , / după argumente, așa cum arată primul exemplu.

Fără , /, cei care o apelează pot folosi argumente cu cuvânt-cheie, chiar și pentru o funcție gândită pentru argumente poziționale, ca în al doilea exemplu.

Odată ce , / este prezent, transmiterea unui argument cu cuvânt-cheie provoacă o eroare, așa cum demonstrează al treilea exemplu.

Exemplu

Prompt
Scrie o funcție cu un parametru doar pozițional, folosind /. Apeleaz-o cu un argument pozițional.
Ieșire: program Python complet

Exemplu

Prompt
Arată că, fără /, o funcție acceptă argumente cu cuvânt-cheie. Definește o funcție cu name și apeleaz-o cu name = "Emil".
Ieșire: program Python complet

Exemplu

Prompt
Arată eroarea care apare când folosești argumente cu cuvânt-cheie cu parametri doar poziționali. Definește o funcție cu name, / și apeleaz-o cu name = "Emil".
Ieșire: program Python complet

Argumente doar cu cuvânt-cheie

Ca să accepți doar argumente cu cuvânt-cheie, pune *, înaintea argumentelor, ca în primul exemplu.

Fără *,, cei care o apelează pot transmite argumente poziționale, chiar dacă funcția a fost gândită pentru cuvinte-cheie. Al doilea exemplu face asta.

Cu *, la locul lui, un argument pozițional provoacă o eroare, așa cum arată al treilea exemplu.

Exemplu

Prompt
Scrie o funcție cu un parametru doar cu cuvânt-cheie, folosind *,. Apeleaz-o cu name = "Emil".
Ieșire: program Python complet

Exemplu

Prompt
Arată că, fără *,, o funcție acceptă argumente poziționale. Definește o funcție cu name și apeleaz-o cu "Emil".
Ieșire: program Python complet

Exemplu

Prompt
Arată eroarea care apare când folosești argumente poziționale cu parametri doar cu cuvânt-cheie. Definește o funcție cu *, name și apeleaz-o cu "Emil".
Ieșire: program Python complet

Combinarea argumentelor doar poziționale și doar cu cuvânt-cheie

O funcție poate folosi ambele tipuri împreună.

Tot ce este înainte de / trebuie să fie pozițional, iar tot ce este după * trebuie transmis prin cuvânt-cheie:

Exemplu

Prompt
Combină argumente doar poziționale și argumente doar cu cuvânt-cheie într-o singură funcție. Folosește / și * pentru a impune tipurile de argumente și returnează suma.
Ieșire: program Python complet