Python pentru începători

Funcții în Python: parametri și return

Învață funcțiile Python cu def, parametri și return. Calculează pătratul unui număr și separă citirea, calculul și afișarea prin exemple testate.

O funcție grupează instrucțiuni care primesc date și pot produce un rezultat reutilizabil. Definiția folosește def, parametrii dau nume datelor primite, iar return trimite valoarea înapoi locului din care funcția a fost apelată. Separarea calculului de citire și afișare face mai ușoară verificarea și reutilizarea aceleiași reguli.

Ce primește și ce afișează programul

Citim n, între 1 și 100, apoi n numere întregi, câte unul pe linie, fiecare între -1000000 și 1000000. Pentru fiecare număr afișăm pe o linie pătratul său, calculat printr-o funcție patrat. Pătratul lui x este produsul x×x, astfel încât rezultatul este nenegativ și pentru intrări negative. Funcția nu citește și nu afișează nimic.

Exemplu explicat pas cu pas

Dacă intrările numerice sunt -3, 0 și 5, apelurile patrat(-3), patrat(0) și patrat(5) întorc 9, 0 și 25. La fiecare apel, parametrul x primește valoarea argumentului respectiv. Instrucțiunea return x * x calculează produsul și încheie apelul. Programul care a apelat funcția păstrează rezultatul în variabila rezultat și îl afișează.

Apelurile funcției patrat pentru -3, 0 și 5 întorc valorile 9, 0 și 25.Apelurile funcției patrat pentru -3, 0 și 5 întorc valorile 9, 0 și 25.Mărește schema ↗

Cum scriem soluția

Definim funcția înainte de locul unde este apelată în execuția programului. Antetul def patrat(x): introduce numele și parametrul. Corpul este indentat, iar return face parte din acest corp. După definiție citim n și folosim for pentru a procesa numerele. În fiecare iterație avem trei responsabilități vizibile: citirea lui numar, calculul rezultatului și afișarea lui.

De ce obținem rezultatul cerut

Contractul funcției spune că primește un întreg x și întoarce x×x. Expresia return respectă direct această definiție, fără să depindă de alte variabile sau de starea unei iterații anterioare. Bucla o apelează exact o dată pentru fiecare număr citit și afișează răspunsurile în aceeași ordine. Astfel corectitudinea calculului poate fi verificată separat de ordinea intrării.

Cost și limite

Pentru n intrări din limitele date, executăm n calcule mici și n afișări, deci timpul este O(n). Nu păstrăm toate rezultatele într-o listă, astfel memoria auxiliară este constantă pentru aceste limite. Fiecare apel se încheie înaintea următorului, fără recursivitate și fără acumularea unor apeluri suspendate.

Greșeli pe care le poți verifica

Print și return nu sunt interschimbabile. Dacă funcția doar afișează produsul, fără return, apelul ei întoarce implicit None; un print aplicat apoi rezultatului ar afișa None. Nici scrierea numelui patrat fără paranteze nu execută funcția. Parantezele și argumentul formează apelul. Un parametru este numele din definiție, iar argumentul este valoarea concretă transmisă la un apel.

Program complet Python 3

def patrat(x):
    return x * x


n = int(input())
for _ in range(n):
    numar = int(input())
    rezultat = patrat(numar)
    print(rezultat)

Exersează

Verifică patrat(1)=1 și patrat(-1)=1, apoi valorile de limită ±1000000, pentru care rezultatul este 1000000000000. Ca exercițiu separat, definește o funcție dublu(x) care întoarce 2*x: pentru -3 trebuie să întoarcă -6. Explică de ce această funcție poate fi folosită într-o expresie, spre deosebire de o instrucțiune care doar afișează.

Continuă parcursul

Pentru valorile numerice, recitește Variabile și numere în Python: int, float și conversii. Pentru apelurile repetate în buclă, vezi Repetarea cu for și range în Python. Pentru organizarea mai multor valori, continuă cu Liste în Python: indici, parcurgere și modificare.

Pentru definițiile limbajului, consultă documentația oficială Python. Exemplele și explicațiile de aici sunt originale, construite pentru acest parcurs.

Întrebări frecvente

Definirea funcției execută imediat corpul ei?

Nu. Definiția creează funcția; corpul se execută când o apelăm, de exemplu prin patrat(5).

Ce se întâmplă dacă lipsește return?

Funcția întoarce implicit None după terminarea corpului. Afișarea unui rezultat în interior nu îl transformă automat în valoare returnată.

Care este diferența dintre parametru și argument?

Parametrul este numele x din definiție. Argumentul este valoarea transmisă la apel, de exemplu -3 în patrat(-3).

Un pas mai departe

Autentifică-te pentru a păstra progresul în cont.

Exersează cu o problemă →