Documente Academic
Documente Profesional
Documente Cultură
Pachete software
Seminar 1 Python
1. Introducere in limbajul Python
- A fost inventat în 1991 de Guido van Rossum;
- Python este un limbaj de programare de ultimă generație, ușor de învățat, ca urmare a
sintaxei simple similare cu limba engleză;
- Necesită mai puține linii de cod în comparație cu alte limbaje;
- Python rulează pe diferite sisteme de operare: Windows, Mac, Linux, Raspberry Pi
etc.;
- Limbajul poate fi utilizat în mai multe medii (IDE): Eclipse, PyCharm, Thonny,
Netbeans, Spyder etc.;
- Conține o bibliotecă vastă de pachete;
o Numpy seturi de date omogene,
o Pandas seturi de date neomogene,
o Scipy, Scikit Learn machine learning, IA,
o Keras rețele neuronale, deep learning, IA,
o Matplotlib, Seaborn, Bokeh reprezentare grafică,
o PyPSA pachete specializate pe domenii de activitate, de exemplu funcționarea
optimă pe principii de piața a generatoarelor electrice,
o BeautifulSoup web-scraping,
o Flask (creează API-uri) etc.
- Citește rapid și modifică fișiere multiple;
- Python se poate conecta la baze de date (Oracle, MySQL, MongoDB).
- Poate gestiona volume mari de date (big data) și efectua operații matematice
complexe.
Instalare
Pentru IDE:
Linkuri utile:
Documentație: https://www.python.org/about/gettingstarted/
https://www.tutorialspoint.com/python/index.htm
https://www.w3schools.com/python/default.asp
Exemple: https://www.programiz.com/python-programming/examples
Pachete: https://pip.pypa.io/en/stable/installing/
Rezolvări: https://stackoverflow.com
1
Seminar 1 Python
Pachete software
Exemplu 3 Exemplu 4
Pentru numere, + acționează ca operator Însumarea unui număr cu un șir de
matematic: caractere, duce la eroare: TypeError:
unsupported operand type(s) for +:
'int' and 'str'
x=5 x=5
y = 10 y = "Python"
print(x + y) print(x + y)
Exemplu 5 Exemplu 6
Variabile de tipul numeric sunt create atunci Pentru a verifica tipul de data in Python
cand li se atribuie valoare. Nu necesita utilizam functia type():
declarare.
x = 1 # int print(type(x))
y = 2.8 # float print(type(y))
z = 1j # complex print(type(z))
Int sau integer reprezintă un număr întreg, pozitiv sau negativ, fără zecimale, de lungime
nelimitată.
Exemplu 7
x=1
y = 35656222554887711
z = -3255522
print(type(x))
print(type(y))
print(type(z))
Float reprezintă un număr pozitiv sau negativ, cu una sau mai multe zecimale.
2
Seminar 1 Python
Pachete software
Exemplu 8 Exemplu 9
x = 1.10 x = 35e3
y = 1.0 y = 12E4
z = -35.59 z = -87.7e100
print(type(x)) print(type(x))
print(type(y)) print(type(y))
print(type(z)) print(type(z))
Numerele complexe complex conțin "j" care desemnează partea imaginară.
Exemplu 10
x = 3+5j
y = 5j
z = -5j
print(type(x))
print(type(y))
print(type(z))
Specificarea tipului de dată pentru o variabilă
Atunci când se dorește specificarea tipului de dată pentru o variabilă, utilizăm următorii
constructori:
int() - construiește un număr întreg dintr-un număr întreg, un număr cu zecimale
(prin eliminarea zecimalelor) sau un șir de caractere (când șirul reprezintă un număr
întreg);
float() - construiește un număr cu zecimale dintr-un număr întreg, un număr cu
zecimale sau un șir de caractere (când șirul reprezintă un număr întreg sau un număr
cu zecimale);
str() - construiește un șir de caractere dintr-o varietate de tipuri de date, incluzând
șiruri de caractere, numere întregi și numele cu zecimale.
Exemplu 11 Exemplu 12 Exemplu 13
x = int(1) # 1 x = float(1) # 1.0 x = str("s1") # 's1'
y = int(2.8) # 2 y = float(2.8) # 2.8 y = str(2) # '2'
z = int("3") # 3 z = float("3") # 3.0 z = str(3.0) # '3.0'
w = float("4.2") # 4.2
3
Seminar 1 Python
Pachete software
2.2 Variabile
În Python, variabilele sunt case-sensitive.
Denumirea variabilelor trebuie să înceapă cu o literă sau underscore (nu cu un număr) și
poate conține numai caractere alfanumerice: de la A-z, 0-9 și underscore.
Spre deosebire de alte limbaje, în Python o variabilă nu se declară neapărat explicit, fiind
necesar să i se atribuie valoare.
Exemplu 23
Exemplu 22
Nu este necesar să se precizeze tipul de data Tipul de data al variabilei poate fi schimbat
al variabilei ulterior
x=5
x = 4 # x este de tip int
y = "Python"
x = "Python" # acum x este de tip str
print(x)
print(x)
print(y)
2.3 Tipuri de variabile
Colecții de date
2.3.1 Liste – colecții de date care pot fi ordonate și modificate. De asemenea, listele permit
elemente identice. Listele sunt reprezentate utilizând [ ].
Exemplu 22 Exemplu 23 Exemplu 24
Accesarea elementelor din Modificarea unui
Crearea și afișarea unei liste
listă se realizează prin index: element:
4
Seminar 1 Python
Pachete software
Exemplu 25
Exemplu 26
Exemplu 27
Metoda pop() elimină elementul de la indexul specificat sau ultimul element în cazul în
care indexul nu este specificat:
5
Seminar 1 Python
Pachete software
Metoda Descriere
append() Adaugă un element la sfârșitul listei
clear() Elimină toate elementele listei
copy() Crează o copie a listei
count() Returnează numărul de apariții al elementului în listă
extend() Adăugă elemente la sfârșitul unei liste
index() Returnează indexul unui element
insert() Adaugă un element la poziția specificată
pop() Elimină elementul de la poziția specificată
remove() Elimină elementul specificat
reverse() Inversează ordinea elementelor în listă
sort() Sortează lista
Metoda Descriere
count() Returnează numărul de apariții al elementului în tuplu
index() Returnează poziția unui element în tuplu
2.3.3 Seturi – colecții de date neordonate și neindexate. Nu sunt acceptate elemente identice.
Seturile sunt reprezentate prin { }.
6
Seminar 1 Python
Pachete software
Exemplu 26
Crearea și afișarea unui set (fiind elemente neordonate, afișarea este aleatoare):
set = {"laptop", "creion", "flipchart"}
print(set)
Accesarea elementelor din set nu este posibilă, dar elementele pot fi parcurse cu for sau
poate fi verificată existența unui element cu in.
Nu pot fi modificate elementele unui set, însă pot fi adăugate elemente noi cu metoda add().
Metoda Descriere
add() Adaugă un element
clear() Elimină toate elementele setului
copy() Returnează o copie a setului
difference() Returnează un set reprezentând diferența dintre două
sau mai multe seturi
difference_update() Elimină elementele dintr-un set care sunt conținute
de un alt set specificat
discard() Elimină un element specificat
intersection() Returnează un set reprezentând intersecția a două
seturi
intersection_update() Elimină elementele dintr-un set care nu sunt în alt
set
isdisjoint() Arată dacă două seturi se intersectează sau nu
issubset() Arată dacă un set este inclus într-un alt set sau nu
issuperset() Arată dacă un set conține un alt set sau nu
pop() Elimină un element
remove() Elimină elementul specificat
symmetric_difference() Returnează un set cu elementele necomune celor
doua seturi
symmetric_difference_update() Inserează într-un set diferențele dintre două seturi
union() Returnează un set reprezentând reuniunea a două
seturi
update() Actualizează setul cu reuniunea dintre un set și altele
7
Seminar 1 Python
Pachete software
print(dictionar.get("laptop"))
Metoda Descriere
clear() Elimină toate elementele din dicționar
copy() Returnează o copie a dicționarului
fromkeys() Returnează un dicționar cu chei valori specificate
get() Returnează valoarea pentru o anumită cheie
items() Returnează o listă conținând un tuplu pentru fiecare pereche cheie-valoare
keys() Returnează o listă conținând cheile dicționarului
pop() Elimină elementul având o anumită cheie specificată
popitem() Elimină ultima pereche adăugată cheie valoare
setdefault() Returnează valoarea pentru o cheie specificată. Dacă cheia nu există, o
adaugă
update() Actualizează dicționarul cu perechile cheie-valoare specificate
values() Returnează o listă cu toate valorile dicționarului
2.4 Operatori
Aritmetici
Atribuire
8
Seminar 1 Python
Pachete software
Comparație
Logici
Identitate
Apartenență
9
Seminar 1 Python
Pachete software
Exemplu 30 Exemplu 31
x=-100 a = 1
# x = int(input ("Evalueaza un numar: ")) b = 3
if x<0: if a<b:
print('x negativ') print('a mai mic decat b')
elif x==0: IndentationError: expected an
print('zero') indented block
else:
print('x pozitiv')
Exemplu 32 Exemplu 33
lista = ["laptop", "creion", lista = ["laptop", "creion",
"flipchart"] "flipchart"]
print(lista) print(lista)
for w in lista: for w in lista:
print (w) print (w[0])
print (len(w))
if break continue
Exemplu 37. Funcția range() returnează o Exemplu 38. Clauza else se execută când se
secvență de numere termină for
for x in range(6): for x in range(6):
print(x) print(x)
else:
for x in range(2, 6):
print("S-au afisat numerele")
print(x)
for x in range(2, 30, 3):
print(x)
# sau in liste
print(list(range(6)))
print(list(range(2, 6)))
print(list(range(2, 30, 3)))
10
Seminar 1 Python
Pachete software
Exemplu 39. Nested loop Exemplu 40. Crearea unei funcții recursive
lista = ["laptop", "creion", def f_recursiva(k):
"flipchart"] if(k>0):
culori = ["rosu", "galben", "verde"] result = k+f_recursiva(k-1)
for x in lista: print(result)
if x =='creion' or x =='flipchart': else:
for y in culori: result = 0
return result
print(x, y)
print("Apel functie recursiva")
f_recursiva(6)
while
O funcție se definește prin intermediul lui def. Funcția my_function, având parametru
implicit 100 (ex. 45)
Exemplu 44 Exemplu 45 Exemplu 46
def my_function(x): def my_function(x = 100): def my_function(x,
result = x**2 result = x**2 n):
print (result) print (result) result = x**n
return result return result print (result)
my_function() my_function(5) return result
TypeError: my_function() my_function(4,2)
missing 1 required
positional argument: 'x'
Funcția lambda este o funcție simplă, anonimă poate avea mai mulți parametri și o singură
expresie, returnând rezultatul expresiei.
Exemplu 49 Exemplu 50 Exemplu 51
x = lambda a : a + 10 x = lambda a, b : a * b x = lambda a, b, c : a + b + c
print(x(5)) print(x(5, 6)) print(x(5, 6, 2))
Exerciții
11
Seminar 1 Python
Pachete software
list.sort(reverse=True|False, key=myFunc)
Reverse Optional. reverse=True will sort the list descending. Default is reverse=False
5. Să se creeze o listă de dicționare cu următoarele chei: id, nume și salariul pentru următorii
angajați: Popescu, Ionescu, Vasilescu.
lista = [{"id":1, "nume":"Popescu", "salariul":5000}, {"id":2, "nume":"Ionescu",
"salariul":4000}, {"id":3, "nume":"Vasilescu", "salariul":6000}]
Dacă angajații au salariul mai mic decât 5000, să se majoreze salariul cu 10%.
7. Să se creeze o listă li1, formată din primele m numere naturale, apoi să se realizeze o
funcție prin care să se creeze o listă li2 formată din numerele prime ale listei li1.
12