Sunteți pe pagina 1din 4

MMSM I  Laborator #2

4. ELEMENTE DE PROGRAMARE

4.1. Construct
, ia if
if conditie :
blocul de instructiuni 1
,

blocul de instructiuni 2
,

execut  blocul de instructiuni 1 (care trebuie indentat) urmat de blocul de instructiuni 2 dac 
, ,

conditie întoarce T rue. Dac  conditie întoarce F alse, se execut  doar blocul de instructiuni ,

2 si restul programului. În cazul în care blocul de instructiuni 2 lipseste se continu  restul


, , ,

programului. Constructia if poate  urmat  de una sau mai multe constructii elif (prescurtarea
, ,

de la ”elseif ”)
elif conditie :
blocul de instructiuni 1
,

care se comport  în aceeasi manier  ca si constructia if . Clauza else


, , ,

else :
blocul de instructiuni 1
,

se foloseste pentru a executa blocul de instructiuni 1 în cazul în care nici una din clauzele if −elif
, ,

nu sunt adev rate.
Forma general  a constructiei if − elif − else
,

if conditie 1 :
blocul de instructiuni 1
,

elif conditie 2 :
blocul de instructiuni 2
,

elif conditie 3 :
pass
else :
blocul de instructiuni 3
,

blocul de instructiuni 4
,

În cazul în care nu se doreste a se executa un anumit bloc de intructiuni acesta se va înlocui cu


, ,

comanda pass.
4.2. Construct
, ia f or
f or contor in element iterabil :
blocul de instructiuni 1
,

1
Variabila contor ia valori rând pe rând din elementul iterabil. elementul iterabil poate  orice
m rime ordonat , cum ar  o list , un tuplu, un dictionar, un sir de numere generat de functia
, , ,

range, etc.
4.3. Instruct
, iunea continue

f or contor in element iterabil :


blocul de instructiuni 1
if conditie 1 :
continue
blocul de instructiuni 2
blocul de instructiuni 3

La ecare iteratie a buclei f or se execut  blocul de instructiuni 1. Dac  conditie 1 este T rue
, ,

se trece la urm toarea iteratie. În cazul în care conditie 1 devine F alse se execut  blocul de
,

instructiuni 2 . Dup  terminarea buclei f or se execut  blocul de instructiuni 3.


, ,

Urm toarea secvent  va selecta toate numerele de la 1 la 99 divizibile la 7.


,

Exemplul #1
1 x = [] #C r e e a z   o list   goal  

2 for i in range (1 ,100) :

3 if i %7 != 0: # Testeaz   dac   restul î mp  r µ i r i i la 7 este diferit de zero

4 continue # Dac   nu este divizibil cu 7 se trece la urm  t o a r e a itera µ ie f 

r  a se executa restul corpului buclei for

5 x . append ( i ) # Adaug   num  r u l divizibil cu 7 la lista

6 print (x)

4.4. Instruct
, iunea break apelat  în bucla f or

f or contor in element iterabil :


blocul de instructiuni 1 ,

if conditie 1 :
break
blocul de instructiuni 2 ,

else :
blocul de instructiuni 3 ,

blocul de instructiuni 4 ,

Clauza else poate  folosit  imediat dup  bucla f or (la acelasi nivel) dac  bucla f or este însotit  , ,

de instructiunea break . blocul de instructiuni 3 este executat dac  si numai dac  conditie 1 nu
, , ,

a luat valoare T rue la nici o iteratie a buclei f or astfel c  nu s-a ajuns la executia instructiunii
, , ,

break . Dac  conditie 1 returneaz  T rue se iese din bucla f or si se trece la executia blocului de , ,

instructiuni 4.
,

Exemplul #2 Urm toarea secvent  de instructiuni veric  dac  un num r este prim sau nu.
, ,

1 y=37

2 for x in range (2 , y ) :

2
3 if y%x == 0:

4 print ( y, " nu este prim " )

5 break

6 else :

7 print ( y, " este prim . " )

4.5. Construct
, ia while
while conditie:
blocul de instructiuni 1 ,

blocul de instructiuni 2
execut  blocul de instructiuni 1 dac  conditie returneaz  T rue. Dup  ce corpul de instructiuni
, ,

a fost executat conditie este vericat  din nou. Procesul continu  pân  când conditie devine
F alse. Se continu  cu executia blocului de intructiuni 2. , ,

Exemplul #3 Mai jos avem un exemplu care va rula la innit dac  nu se intervine din exterior.
Executia se opreste prin combinatia de taste ctrl + C .
, , ,

1 while True :

2 p r i n t ( " Apasa Ctrl = C pentru a opri bucla infinita " )

Obs.: Ca si în cazul buclei f or, r mân valabile clauzele else, continue si break având aceeasi
, , ,

sintax .
5. FUNCT
, II

O functie Python poate  denit  oriunde în program înainte de a  efectiv folosit . Sintaxa
,

unei functii este: ,

def nume(argumente) :
corpul functiei
return variabile

Exemplul #4 Urm toarea secvent  calculeaz  suma a dou  numere si returneaz  suma lor.
, ,

1 def suma ( a , b ) :

2 c = a ** 2 + b

3 return c

4 p r i n t ( suma ( 1 , 2 ) )

Dac  apelul functiei se face prin valorile parametrilor, atunci rezultatul depinde de ordinea
,

scrierii acestora. Dac  îns  functia este apelat  atât cu numele parametrilor cat si cu valorile
, ,

acestora, atunci ordinea numai conteaz , programul stie s  le atribuie corect. ,

1 p r i n t ( suma ( b = 3, a = 4) )

În cazul în care vrem s  atribuim unui parametru o valoare implicit , în lista de parametri ai
functiei vom atribui parametrului valoarea corespunzatoare, folosind operatorul de atribuire. La
,

apel parametrul cu valoare imlicit  poate  omis.

3
1 def a r i a _ c e r c (R, p i = 3.14) :

2 aria = pi * R ** 2
3 return aria

4 print ( aria_cerc (3) )

Dac  dorim s  redenim parametrul pi cu o valoare mai exact , la apelul functiei în lista cu ,

argumente putem deni noua valoare.


1 aria_cerc (3 , pi = 3 . 1 4 1 5 9 )# În acest caz Python ignor   valoarea veche a lui pi

În cazul în care nu stim apriori câte argumente vor  transmise functiei, putem adauga ∗ înainte ,

de parametru. Astfel, functia va primi un tuplu de argumente si va avea acces la valorile acestuia.
, ,

1 def suma_n ( * a) :

2 n = len (a)

3 s = 0

4 for i in range (n) :

5 s = s + a[ i ]

6 print ( s )

7 print (a)

8 suma_n ( 1 , 2 , 3 , 4 , 5 , 6 )

Dac  se doreste a se folosi la un loc parametrii obligatorii si cu cei arbitrari, atunci acestia din
, , ,

urm  se scriu la nal.


1 def Parametri_oblig_arbit (a , *b) :
2 print (b) #Tu pl u de argumente

3 s = 0

4 for i in range ( len (b) ) :

5 s = s + b[ i ]

6 s = s + a

7 print ( s )

8 Parametri_oblig_arbit (7 ,1 ,2 ,3) #P r i m u l argument corespunde parametrului a ,

iar restul valorilor sunt atribuite .

10

Primul argument corespunde parametrului a, iar restul valorilor sunt atribuite tuplului de argu-
mente b.
Dac  expresia unei functii este simpl  o vom deni folosind sintaxa lambda.
,

f unc nume = lambda param1, param2,... : expresia

1 c = lambda x,y : x ** 2 + y ** 2
2 print ( c (3 ,4) )

S-ar putea să vă placă și