Documente Academic
Documente Profesional
Documente Cultură
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 ,
programului. Constructia if poate urmat de una sau mai multe constructii elif (prescurtarea
, ,
de la ”elseif ”)
elif conditie :
blocul de instructiuni 1
,
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
,
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
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
,
Exemplul #1
1 x = [] #C r e e a z o list goal
6 print (x)
4.4. Instruct
, iunea break apelat în bucla f or
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:
5 break
6 else :
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 :
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
,
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
, ,
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
,
3
1 def a r i a _ c e r c (R, p i = 3.14) :
2 aria = pi * R ** 2
3 p r i n t ( f ' Aria cercului de raza {R} este : ' , aria )
4 aria_cerc (3)
Dac dorim s redenim parametrul pi cu o valoare mai exact , la apelul functiei în lista cu ,
Î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
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
, , ,
3 s = 0
5 s = s + b[ i ]
6 s = s + a
7 print ( s )
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.
,
1 c = lambda x,y : x ** 2 + y ** 2
2 print ( c (3 ,4) )
5. CALCUL SIMBOLIC
Calculul simbolic este folosit pentru manipularea si evaluarea expresiilor algebrice. Variabilele ,
independente care apar în expresii sunt denite simbolic folosind caractere sau siruri de caractere. ,
4
1 import sympy as sp # Modulul sympy necesar calculului simbolic .
Variabilele simbolice se pot folosi în mai multe moduri, folosind una dintre variantele: sm.Symbol,
sp.symbols si sp.var. ,
Este foarte important s se dea cât mai multe informatii despre natura variabilelor simbolice. ,
Acest lucru va ajuta Python s manipuleze si s simplice mai ecient expresiile analitice.
,
este real
Alte tipuri de restrictii pe care le suport variabile simbolice si cuvintele cheie cu care se veric
, ,
tipul lor.
Tipul variabilei simbolice Atributul prin care se veric tipul variabilei simbolice
real is real
imaginary is imaginary
positive is positive
negative is negative
integer is integer
odd is odd (se refera doar la intregi)
even is even (se refera doar la intregi)
prime is prime (se refera doar la intregi)
1 x = s p . Symbol ( " x " )
3 sp . p p r i n t ( sp . s q r t ( x ** 2) )
Functia sp.pprint (pretty print) aseaz expresiile simbolice într-o form cât mai natural ,
, ,
2 p r i n t ( syp . R a t i o n a l ( 1 , 2 ) ) #R e p r e z e n t a r e a numerelor ra µ i o n a l e
Operat
, ii cu numere rat
, ionale
1 r1 = sp . R a t i o n a l ( 2 , 3)
2 r2 = sp . R a t i o n a l ( 4 , 5)
3 exp = r1 * r2 + r2 / r1
5
4 sp . p p r i n t ( exp )
Constante s
, i simboluri speciale
1 sp . p p r i n t ( sp . p i ) #C o n s t a n t a pi
2 sp . p p r i n t ( sp . E) #C o n s t a n t a Euler
3 sp . p p r i n t ( sp . oo ) #I n f i n i t
Functii simbolice
3 type ( f )
4 #A c e a s t a functie poate fi apelata cu una , dou sau mai multe variabile dac
5 f (x)
6 f (x , y)
7 f (x , y , z )
variabilele
3 h = s p . Lambda ( x , x ** 2)
Expresiile s
, i manipularea acestora
2 expr = 1 + 2 * x ** 2 + 3 * x ** 3
3 sp . p p r i n t ( expr )
6 expr = 2 * (x ** 2 = x) = x * (x + 1)
7 sp . p p r i n t ( expr )
8 sp . p p r i n t ( sp . s i m p l i f y ( expr ) )
11 expr = (x + 1) * (x + 2)
12 sp . p p r i n t ( sp . expand ( e x p r ) )
13
15 sp . p p r i n t ( sp . f a c t o r ( x ** 2 = 1) )
16
17 # collect () rescrie expresia sub forma unui polinom dupa variabila precizata
18 expr = x + y + x * y * z + x ** 2 * y
19 sp . p p r i n t e ( xpr . c o l l e c t ( x ) )
20 sp . p p r i n t e ( xpr . c o l l e c t ( y ) )
21
22 #D e s c o m p u n e r e a in fractii simple = sp . a p a r t ( E x p r e s i e , x )
23 sp . a p a r t ( 1 / ( x ** 2 + 3 *x + 2) , x)
24
6
25 #A d u c e r e a la numitor comun
26 sp . t o g e t h e r (1 / (y * x + y) + 1 / (1 + x) )
27 s p . t o g e t h e r ( sympy . R a t i o n a l ( 2 , 3 ) , sympy . R a t i o n a l ( 4 , 6) )
28
29 #S i m p l i f i c a r e a unei fractii
30 sp . c a n c e l ( y / (y * x + y) )