Școala Româno-Britanică
Modulul 5 Clasa a IX-a | Python

Ora 2: Parametri și valori returnate

Ce vei învăța astăzi: Transmiterea parametrilor, return, variabile locale și globale

Rezultat practic: Folosești parametri și valori returnate și distingi variabilele locale de cele globale (Competența 2.5).

Competența 2.5 Săptămâna 24

Înainte de a începe

De ce contează? Fără parametri, o funcție face mereu același lucru; cu parametri și return, aceeași funcție rezolvă orice date de intrare și îți dă rezultatul înapoi.

Ce știi deja?

În lecția trecută ai definit funcții fără parametri, de exemplu def saluta(). Ce îi lipsea funcției pentru a lucra cu date diferite la fiecare apel?

Ideea-cheie: Parametrii sunt intrările funcției, iar return este ieșirea ei: print doar afișează, return pune valoarea la dispoziția restului programului.
SINTEZĂ TEORETICĂ ȘI EXEMPLE GHIDATE

Ce vei învăța astăzi?

După această lecție vei înțelege cum transmitem date unei funcții prin parametri (datele de intrare ale funcției, scrise între paranteze), cum ne dă funcția un rezultat prin return (instrucțiunea care trimite valoarea înapoi locului de apel) și deosebești variabilele locale (definite în interiorul funcției) de cele globale (definite în afara funcțiilor).

Ce sunt parametrii unei funcții
Cum transmitem valori prin apel
Ce face instrucțiunea return
Variabile locale versus variabile globale

Parametrii unei funcții

Parametrii sunt datele de intrare ale unei funcții. Îi scriem între paranteze, la definire: def arie(L, l):. Când apelăm funcția, transmitem argumente concrete (valorile reale date funcției la apel): arie(5, 3).

Analogie:

O funcție este ca o mașină de spălat. Parametrii sunt hainele pe care le pui înăuntru. Fiecare spălare primește haine diferite, dar mașina face același lucru.

Algoritm Maximul a doua numere Functie maxim(a, b) daca a > b atunci returneaza a altfel returneaza b sfarsit daca Sfarsit functie Start program citeste a, b scrie maxim(a, b) Stop program
Exemplu complet - maximul a două numere
def maxim(a, b):
    if a > b:
        return a
    else:
        return b


rezultat = maxim(7, 3)
print(rezultat)

Observă: parametrii a și b primesc valorile 7 și 3 la apel. Funcția compară cele două valori și returnează pe cea mai mare.

Valoarea returnată cu return

Instrucțiunea return face ca funcția să dea o valoare înapoi locului din care a fost apelată. După return, funcția se oprește.

Exemplu complet - aria unui dreptunghi
def arie(L, l):
    return L * l


rezultat = arie(5, 3)
print("Aria este:", rezultat)

Reține: print doar afișează pe ecran, dar return trimite valoarea înapoi ca rezultat, pe care îl putem salva într-o variabilă.

Variabile locale și variabile globale

O variabilă definită în interiorul unei funcții este locală: există doar acolo și nu poate fi folosită în afara ei. O variabilă definită în afara oricărei funcții este globală.

Tip de variabilăUnde se defineșteUnde poate fi folosită
LocalăÎn interiorul funcțieiDoar în interiorul funcției
GlobalăÎn afara funcțiilorÎn tot programul, inclusiv în funcții
Exemplu - variabile locale și globale
x = 10   # variabila globala


def aduna(n):
    total = x + n   # total este locala
    return total


print(aduna(5))

Exercițiu de completare

Completează enunțul cu cuvintele potrivite:

Valorile pe care le primește o funcție la intrare se numesc ______. Instrucțiunea ______ trimite o valoare înapoi locului din care a fost făcut ______-ul. O variabilă definită în interiorul funcției este o variabilă ______.

Bancă de cuvinte:
parametri return local apel

Test de înțelegere

Test rapid - parametri și valori returnate:

1. Instrucțiunea return face ca funcția să:

2. O variabilă definită în interiorul unei funcții este:

3. Care este rezultatul expresiei max(3, 7)?

Test suplimentar

Test suplimentar - parametri și return:

1. Ce afișează programul def adunare(a, b): return a + b; print(adunare(2, 3))?

2. După instrucțiunea return, funcția:

3. Parametrii unei funcții sunt:

Ai grijă la: Variabilele definite în funcție sunt locale: nu se văd în afara ei, iar o funcție fără return întoarce implicit valoarea specială None.

Aprofundare

Prin valoare sau prin referință? În Python, numerele și șirurile de caractere (tipuri imuabile) se transmit prin valoare: modificarea lor în interiorul funcției nu se vede în afara ei. Listele (tipuri mutabile) se transmit prin referință: o modificare făcută în funcție rămâne vizibilă și în afara ei.

  • Valori implicite: un parametru poate avea valoare implicită: def f(a, b=2). Dacă apelul nu transmite al doilea argument, se folosește 2. Parametrii cu valoare implicită se scriu mereu la sfârșitul listei de parametri.
  • Apel cu nume: putem apela f(b=5, a=3), numind fiecare argument, indiferent de ordine.
  • Return multiplu: o funcție poate returna mai multe valori separate prin virgulă: return a, b - Python le împachetează într-un tuplu.
  • Variabile globale: pentru a modifica o variabilă globală din interiorul unei funcții, o declarăm cu global x; fără această declarație, Python creează o variabilă locală cu același nume.
  • Caz particular: o funcție fără return întoarce implicit None; de exemplu, print() întoarce None.
APLICARE ȘI REZOLVARE DE PROBLEME

PbInfo - Maximul a două numere

Enunț:

Cerință: Se definesc două numere a și b. Să se afișeze maximul lor, folosind o funcție max2(a, b) care întoarce valoarea cu ajutorul lui return.

Date de intrare:

Programul citește de la tastatură două numere întregi a și b, pe aceeași linie.

Date de ieșire:

Programul va afișa pe ecran maximul dintre a și b.

Restricții și precizări:

Valorile citite sunt numere întregi, iar n este un număr natural, cu 1 <= n <= 1000.

Exemplu:

Intrare:

7 3

Ieșire:

7
Cum gândim soluția:
  1. Definim funcția max2(a, b) cu doi parametri
  2. Comparăm cele două valori și folosim return pentru cea mai mare
  3. Citim a și b cu map(int, input().split()) și apelăm funcția
Scrie soluția în Python:
Soluție corectă:
Soluția completă
def max2(a, b):
    if a > b:
        return a
    return b


a, b = map(int, input().split())
print(max2(a, b))

Ce învățăm: funcția primește parametri și returnează o valoare prin return, iar apelul se face în print.

PbInfo - Aria dreptunghiului

Enunț:

Cerință: Să se calculeze aria unui dreptunghi, folosind o funcție arie(L, l) care primește lungimea și lățimea și întoarce produsul lor.

Date de intrare:

Programul citește de la tastatură lungimea L și lățimea l, pe aceeași linie.

Date de ieșire:

Programul va afișa pe ecran aria dreptunghiului (L * l).

Restricții și precizări:

Valorile citite sunt numere întregi, iar n este un număr natural, cu 1 <= n <= 1000.

Exemplu:

Intrare:

5 3

Ieșire:

15
Cum gândim soluția:
  1. Definim funcția arie(L, l) cu doi parametri
  2. În corp returnăm produsul: return L * l
  3. Citim L și l și afișăm rezultatul apelului funcției
Scrie soluția în Python:
Soluție corectă:
Soluția completă
def arie(L, l):
    return L * l


L, l = map(int, input().split())
print(arie(L, l))

Ce învățăm: o funcție cu parametri poate calcula și returna un rezultat, iar apelul se poate pune direct în print.

EXERCIȚII PRACTICE

Exercițiul Practic: Funcții cu parametri și return

Sarcini de lucru

Rezolvă cele două sarcini folosind funcții cu parametri și instrucțiunea return

Sarcina 1: Perimetrul dreptunghiului

Cerință: Scrie o funcție perimetru(L, l) care întoarce perimetrul dreptunghiului folosind formula 2 * (L + l). Citește L și l și afișează rezultatul.

Soluție:
def perimetru(L, l):
    return 2 * (L + l)


L, l = map(int, input().split())
print(perimetru(L, l))

Verifică: funcția primește cei doi parametri, calculează 2 * (L + l) și returnează rezultatul cu return.

Sarcina 2: Dublul a trei numere

Cerință: Scrie o funcție dublu(x) care întoarce dublul unui număr. Citește 3 valori de la tastatură (una pe linie) și afișează dublul fiecăreia, apelând funcția.

Soluție:
def dublu(x):
    return 2 * x


for i in range(3):
    n = int(input())
    print(dublu(n))

Verifică: funcția este apelată de 3 ori, o dată pentru fiecare valoare citită, fiecare apel întorcând un rezultat diferit.

Scrie pe caiet - De reținut

Titlul lecției

Parametri și valori returnate.

Definiția lecției

Parametrii sunt datele de intrare ale unei funcții: îi scriem între paranteze la definire, iar la apel transmitem argumente concrete. Instrucțiunea return face ca funcția să dea o valoare înapoi locului din care a fost apelată; după return, funcția se oprește. Diferența dintre print și return este importantă: print doar afișează pe ecran, pe când return pune valoarea la dispoziția restului programului. Variabilele locale sunt definite în interiorul funcției și există doar acolo, iar cele globale sunt definite în afara funcțiilor și pot fi folosite oriunde. De exemplu, funcția maxim(a, b) primește două numere prin parametri și întoarce pe cel mai mare prin return.

Definiții esențiale

Algoritmul cheie - pseudocod

Functie maxim(a, b) daca a > b atunci returneaza a altfel returneaza b sfarsit daca Sfarsit functie Start program citeste a, b scrie maxim(a, b) Stop program

Algoritmul cheie - cod Python

def maxim(a, b):
    if a > b:
        return a
    return b


a, b = map(int, input().split())
print(maxim(a, b))

Greșeli comune de evitat

Exemplu practic

Un magazin online calculează prețul final după aplicarea unei reduceri. Funcția pret_reducere(pret, procent) primește prețul și reducerea prin parametri și întoarce rezultatul prin return, iar programul principal doar o apelează:

def pret_reducere(pret, procent):
    return pret - pret * procent / 100


final = pret_reducere(200, 25)
print(final)   # afiseaza 150.0

Sfaturi practice și trucuri