Documente Academic
Documente Profesional
Documente Cultură
2014
E-learn.ro
01.08.2009
In acest tutorial vei putea citi despre functii predefinite in Python si functii definite de utilizator, cat si despre preluarea inputului de
la tastatura.
8209 afisari
Rating
(2 voturi)
30 min
Functii
Introducere
Ce sunt functiile? In esenta, functiile sunt sectiuni de cod ce executa o anumita sarcina si pe care le poti
incorpora in propriile programe mai mari. Dupa ce ai creat o functie, o poti utiliza oricand, oriunde. Aceasta te
scuteste de timpul si de efortul de a-i spune iar si iar computerului ce sa faca de fiecare data cand executa o
sarcina obisnuita, de exemplu preluarea inputului de la tastatura.
1/7
3.12.2014
E-learn.ro
Observatie: Nu te obosi sa testezi acest cod - pentru a functiona, trebuie mai intai sa definesti functia
multiply().
Functia va fi executata, apoi va returna un numar in programul principal, bazat pe parametrii oferiti.
Acum sa incercam apelul unei functii predefinite si sa vedem cum lucreaza. Functia respectiva este denumita
raw_input si ii solicita utilizatorului sa tasteze ceva, apoi transforma datele introduse intr-un sir de caractere
(string). Incearca te rog codul de mai jos:
# aceasta linie retine datele introduse in variabila a
a = raw_input("Scrie un text, ce va fi afisat din nou pe ecran:")
# afiseaza continutul variabilei a
print a
Sa spunem ca in programul de mai sus ai tastat "hello". Pentru computer, acest program ar arata astfel:
a = "hello"
print "hello"
Aminteste-ti, o variabila este doar o valoare stocata. Pentru computer, variabila "a" nu arata ca un "a" - vede
valoarea stocata in interiorul sau. Functiile sunt similare - programul principal (acesta este cel care ruleaza
functia) va vedea doar valorile primite ca urmare a apelarii.
Un calculator
Sa scriem un alt program care va actiona ca un calculator. De data aceasta vom face ceva mai aventuros. Va
exista un meniu care te va intreba daca doresti sa inmultesti doua numere, sa le aduni, sa le imparti sau sa le
scazi. Exista o singura problema - functia raw_input returneaza un string, iar noi avem nevoie de numarul 1,
nu de litera 1 (si da, in python este o diferenta).
Din fericire, avem la dispozitie functia input care returneaza ce ai tastat, dar de data aceasta ca numar. Daca
ai tastat un numar intreg, ceea ce rezulta este un numar intreg. Si daca scrii acel numar intr-o variabila,
variabila va fi de tip integer, ceea ce inseamna ca o poti utiliza in operatii aritmetice.
Acum, sa cream acest calculator. Ne dorim un meniu care este afisat de fiecare data cand terminam de adunat,
scazut, etc. Cu alte cuvinte, sa execute o bucla continua.
Sa scriem asta intr-un limbaj pe intelesul tuturor:
INCEPE PROGRAMUL
afiseaza mesaj de inceput
in timp ce programul ruleaza, executa:
#Afiseaza operatiile aritmetice permise
afiseaza Optiunea 1 - adunare
afiseaza Optiunea 2 - scadere
afiseaza Optiunea 3 - inmultire
afiseaza Optiunea 4 - impartire
afiseaza Optiunea 5 - iesire din program
citeste optiunea aleasa
daca este optiunea 1:
citeste primul numar
citeste cel de-al doilea numar
aduna numerele
afiseaza rezultatul
daca este optiunea 2:
citeste primul numar
citeste cel de-al doilea numar
efectueaza scaderea
afiseaza rezultatul
daca este optiunea 3:
citeste primul numar
citeste cel de-al doilea numar
inmulteste-le
http://www.e-learn.ro/printare-tutorial/python/introducere-in-python-partea-a-ii-a-functii-/149/1/374.htm
2/7
3.12.2014
E-learn.ro
inmulteste-le
afiseaza rezultatul
daca este optiunea 4:
citeste primul numar
citeste cel de-al doilea numar
efectueaza impartirea
afiseaza rezultatul
daca este optiunea 5:
iesire din bucla
afiseaza un mesaj de iesire
TERMINA PROGRAMUL
Acum sa ii dam o forma pe care o poate intelege python:
#program calculator
# variabila loop indica programului daca sa execute bucla sau nu
# 1 inseamna executa bucla, orice alta valoare inseamna iesire din bucla
loop = 1
# aceasta variabila retine optiunea aleasa de utilizator
choice = 0
while loop == 1:
#afiseaza optiunile
print "Bine ai venit la calculator.py"
print "Optiunile tale sunt:"
print " "
print "1) Adunare"
print "2) Scadere"
print "3) Inmultire"
print "4) Impartire"
print "5) Iesire din calculator.py"
print " "
choice = input("Alege optiunea dorita: ")
if choice == 1:
add1 = input("Aduna asta: ")
add2 = input("cu asta: ")
print add1, "+", add2, "=", add1 + add2
elif choice == 2:
sub2 = input("Scade asta: ")
sub1 = input("din asta: ")
print sub1, "-", sub2, "=", sub1 - sub2
elif choice == 3:
mul1 = input("Inmulteste asta: ")
mul2 = input("cu asta: ")
print mul1, "*", mul2, "=", mul1 * mul2
elif choice == 4:
div1 = input("Imparte asta: ")
div2 = input("la asta: ")
print div1, "/", div2, "=", div1 / div2
elif choice == 5:
loop = 0
print "Iti multumim ca ai utilizat calculator.py!"
Este un program impresionant! Copiaza asta in python IDLE, salveaza codul cu numele de 'calculator.py' si
ruleaza-l (F5). Joaca-te putin - incearca-i toate optiunile, introducand numere intregi sau rationale (in python,
zecimalele sunt delimitate prin punct(.), cunoscut in programare ca floating point). Incearca sa introduci text si
vei vedea cum programul nu va mai rula (aceasta problema se poate rezolva prin validarea datelor si erori, la
care ne vom referi mai tarziu.)
3/7
3.12.2014
E-learn.ro
Gandeste-te la ultima linie de cod de mai sus. Ce am facut? Introdu codul in IDLE (poti sari peste comentarii) si
vezi ce face. Rezultatul arata astfel:
hello
1234
Deci, ce s-a intamplat?
1. Cand a fost rulat 'def hello()', a fost creata o functie denumita "hello".
2. Cand a fost rulata linia 'print hello()', a fost executata functia "hello" (a fost rulat codul acesteia).
3. Functia "hello" a afisat "hello" pe ecran, apoi a returnat numarul "1234" in programul principal.
4. Programul principal vede acum linia ca fiind "print 1234" si ca rezultat a afisat "1234".
Argumentele functiilor
Ne vom mai referi la un singur subiect legat de functii - transmiterea parametrilor. Aminteste-ti cum am definit
http://www.e-learn.ro/printare-tutorial/python/introducere-in-python-partea-a-ii-a-functii-/149/1/374.htm
4/7
3.12.2014
E-learn.ro
Un program complet
Aminteste-ti de programul calculator. Ti s-a parut cam confuz? Cred ca da, deci sa-l rescriem cu ajutorul
functiilor.
Mai intai vom defini toate functiile pe care le vom utiliza cu ajutorul operatorului def. Apoi vom avea programul
principal, cu acel cod confuz inlocuit de functii dragute si clare, ceea ce il va face mai usor de citit si de inteles.
# program calculator
# NU AVEM NEVOIE DE COD AICI
# In continuare definim functiile
# Functia menu afiseaza meniul
def menu():
#afiseaza optiunile
print "Bine ai venit la calculator.py"
print "Optiunile tale sunt:"
print " "
print "1) Adunare"
print "2) Scadere"
print "3) Inmultire"
print "4) Impartire"
print "5) Iesire din calculator.py"
print " "
return input ("Alege optiunea: ")
# Functia add aduna doua numere
def add(a,b):
print a, "+", b, "=", a + b
# Functia sub scade doua numere
def sub(a,b):
print b, "-", a, "=", b - a
# Functia mul inmulteste doua numere
def mul(a,b):
print a, "*", b, "=", a * b
# Functia div imparte doua numere
http://www.e-learn.ro/printare-tutorial/python/introducere-in-python-partea-a-ii-a-functii-/149/1/374.htm
5/7
3.12.2014
E-learn.ro
6/7
3.12.2014
add(45,7)
E-learn.ro
Exemplul de mai sus este corect deoarece singurul lucru vazut de functie sunt valorile transmise ca parametri.
Aceste valori sunt asezate in argumentele corespunzatoare din definitia functiei "add", respectiv in variabilele
a si b.
Pe scurt:
Singurul lucru vazut de functii sunt parametrii trimisi din programul principal.
Singurul lucru vazut de programul principal sunt valorile returnate de functii.
In urmatoarea parte a acestei serii vei putea analiza si alte exemple de utilizare a functiilor.
Copyright 2008-2010 E-LEARN.ro. Toate drepturile rezervate. Conceput si realizat de Neokinetics Software.
http://www.e-learn.ro/printare-tutorial/python/introducere-in-python-partea-a-ii-a-functii-/149/1/374.htm
7/7