Functions
Așa cum am menționat într-o lecție anterioară, nu este o idee bună să repetăm cod. Dacă trebuie să scriem același lucru de două ori, șansele sunt că va trebui să-l scriem de trei ori sau mai mult. Aici intervine noțiunea de funcție. O funcție este o bucată de cod pe care o scriem o dată și o putem refolosi de mai multe ori
nume = "Cortez"
varsta = 60
i = 0
for i in range(0, 11):
print(f"Ma numesc {nume} si am varsta {varsta}")
Ieșire:
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ma numesc Cortez si am varsta 60
Ce se întâmplă dacă vrem să afișăm același lucru, dar cu Tommy Vercetti și vârsta 42? Bineînțeles, putem schimba valorile variabilelor
nume = "Tommy Vercetti"
varsta = 42
i = 0
for i in range(0, 11):
print(f"Ma numesc {nume} si am varsta {varsta}")
Ieșire:
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
Ma numesc Tommy Vercetti si am varsta 42
și asta e în regulă
Totuși, dacă vrem să folosim această bucată de cod mai târziu în program cu valori diferite pentru nume și varsta, ar trebui mereu să copiem și să lipim această buclă for
Se dovedește că cel mai bun mod, și cel care face codul cel mai lizibil, este să folosim o funcție
def functia_mea(nume, varsta):
i = 0
for i in range(0, 11):
print(f"Ma numesc {nume} si am varsta {varsta}")
functia_mea("Cortez", 60)
functia_mea("Tommy Vercetti", 42)
functia_mea("Lance Vance Dance", 35)
Putem vedea cum codul nostru este mult mai curat și mai ușor de citit. Ce am făcut a fost să refolosim funcția numită my_function și să o apelăm cu valori diferite. Am scris funcția o dată și o putem rula de câte ori vrem cu valori diferite
Cuvântul def definește o funcție în Python
my_function este numele funcției, adică numele pe care îl folosim pentru a apela această funcție
La fel ca print(), folosim paranteze ()
În interiorul parantezelor, scriem cum vrem să numim parametrii. În acest caz, nume și varsta
Ține minte că numele parametrilor pot fi orice. Codul de mai jos funcționează la fel de bine
def functia_mea(n, a):
i = 0
for i in range(0, 11):
print(f"Ma numesc {n} si am varsta {a}")
functia_mea("Cortez", 60)
functia_mea("Tommy Vercetti", 42)
functia_mea("Lance Vance Dance", 35)
După ce numim o funcție, trebuie să punem un :
Un alt exemplu de funcție ar putea fi
def f(nume, stare):
if(stare == True):
print(f"{nume} este online")
else:
print(f"{nume} este offline")
nume = "Admin"
este_online = True
f(nume, este_online) # afiseaza Admin este online
este_online = False
f(nume, este_online) # afiseaza admin este offline
Misiune: Calculatorul de la Bord
Stația are nevoie de un calculator de bord. Scrie o funcție calculator(a, b, operator) care primește două numere și un operator (+, -, *, /) și afișează operația cu rezultatul ei. Dacă operatorul nu este unul dintre cele patru, afișează Operator invalid.
Apoi citește din input, câte unul pe linie, cele două numere a și b și operator, și apelează funcția cu ele.
Exemple
Dacă utilizatorul tastează
14
12
+
programul afișează
14 + 12 = 26
Alte exemple: pentru 20, 8, - afișează 20 - 8 = 12; pentru 6, 7, * afișează 6 * 7 = 42; pentru 20, 4, / afișează 20 / 4 = 5.0; pentru 5, 2, % afișează Operator invalid.