Sunteți pe pagina 1din 12

Seminar 1 Python

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

Ultima versiune Python poate fi descărcată aici: https://www.python.org/downloads/.

Pentru IDE:

- accesați: www.eclipse.org. Efectuați apoi setarea IDE pentru Python ca în


https://www.ics.uci.edu/~pattis/common/handouts/pythoneclipsejava/eclipsepython
%20neon.html (de asemenea, această versiune de Eclipse poate fi utilizată);
- sau accesați: https://www.jetbrains.com/pycharm/download/#section=windows.

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

Pentru afișare utilizăm print.


Exemplu 1 Exemplu 2
Pentru a combina un șir de caractere cu o variabilă, utilizăm +, care are rolul de a
concatena:
x = "pachete software" x = "Seminar "
print("Seminar " + x) y = "Pachete Software"
z =  x + y
print(z)

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)

2. Elemente de programare: tipuri de date, variabile. tipuri de variabile, operatori, vectori,


structuri alternative si repetitive.
2.1 Tipuri de date
2.1.1 Numeric
 int
 float
 complex

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

2.1.2 Șiruri de caractere – marcate cu “ ” sau ‘ ’.


Ca în multe alte limbaje de programare, șirurile de caractere în Python sunt considerate ca
vectori. Parantezele [ ] sunt utilizate pentru a accesa elementele șirului.
Exemplu 14 Exemplu 15 Exemplu 16 Exemplu 17
Obținerea Extragerea unui Metoda strip() Metoda len()
caracterului de la subșir. Obținerea elimină spațiile: returnează lungimea
poziția 1 (primul caracterelor de la șirului:
caracter are poziția poziția 2 la 5
0): (exclusiv):
a = "Seminar pachete b = "Seminar pachete a=" Seminar a = "Seminar pachete
software" software" pachete software" software"

3
Seminar 1 Python
Pachete software

print(a[1]) print(b[2:5]) print(a.strip()) print(len(a))


# returns "Seminar
pachete software"
print(a)

Exemplu 18 Exemplu 19 Exemplu 20 Exemplu 21


Metoda lower() Metoda upper() Metoda replace() Metoda split()
transformă șirul în transformă șirul în înlocuiește un șir cu împarte șirul în mai
litere mici: litere mari: un alt șir: multe șiruri după un
separator:
a = "Seminar pachete a = "Seminar pachete a = "Seminar pachete a = "Seminar, pachete
software" software" software" software"
print(a.lower()) print(a.upper()) print(a.replace(" ", "")) print(a.split(",")) # se
obtine o lista de valori
['Seminar', ' 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:

lista = ["laptop", "creion", lista = ["laptop", "creion", lista = ["laptop", "creion",


"flipchart"] "flipchart"] "flipchart"]
print(lista) print(lista[1]) lista[1] = "carioca"
print(lista)

4
Seminar 1 Python
Pachete software

Pentru a determina numărul de elemente din listă, utilizăm metoda len()

Exemplu 25

lista = ["laptop", "creion", "flipchart"]


print(len(lista))

Pentru a adăuga un element în listă, utilizăm metoda append()

Exemplu 26

lista = ["laptop", "creion", "flipchart"]


lista.append("rucsac")
print(lista)

Pentru a adăuga un element în listă la o anumită poziție, utilizăm metoda insert()

Exemplu 27

lista = ["laptop", "creion", "flipchart"]


lista.insert(1, "rucsac")
print(lista)

Eliminarea unui element se realizează cu metoda remove()

lista = ["laptop", "creion", "flipchart"]


lista.remove("laptop")
print(lista)

Metoda pop() elimină elementul de la indexul specificat sau ultimul element în cazul în
care indexul nu este specificat:

lista = ["laptop", "creion", "flipchart"]


lista.pop()
print(lista)

Și metoda del elimina elementul de la indexul specificat:

lista = ["laptop", "creion", "flipchart"]


del lista [0]
print(lista)

Metoda del poate șterge întreaga lista:

lista = ["laptop", "creion", "flipchart"]


del lista
print(lista) #apare o eroare deoarece lista nu mai există

Metoda clear() golește lista:

5
Seminar 1 Python
Pachete software

lista = ["laptop", "creion", "flipchart"]


lista.clear()
print(lista)

Este posibilă crearea unei liste prin intermediul constructorului list().

lista = list(("laptop", "creion", "flipchart")) #observați parantezele rotunde duble


print(lista)

Metode pentru liste

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

2.3.2 Tupluri – colecții de date ordonate și nemodificabile. De asemenea, tuplurile permit


elemente identice. Tuplurile sunt reprezentate utilizând ( ).

Exemplu 25 Exemplu 26 Exemplu 27


Accesarea elementelor din Modificarea unui element
Crearea și afișarea unui tuplu:
tuplu se realizează prin index: nu este posibilă, tuplul
rămâne nemodificat.
tuplu = ("laptop", "creion", tuplu = ("laptop", "creion", tuplu = ("laptop", "creion",
"flipchart") "flipchart") "flipchart")
print(tuplu) print(tuplu[1]) tuplu[1] = "carioca"
TypeError: 'tuple'
object does not
support item
assignment

Metode pentru tupluri

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().

Metode pentru seturi

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

2.3.4 Dicționare – colecții de date neordonate, modificabile și indexate. Nu sunt admise


elemente identice. Dicționarele sunt reprezentate prin { }, având suplimentar chei și valori.

Exemplu 27 Exemplu 28 Exemplu 29


Accesarea elementelor din Modificarea unui element
Crearea și afișarea unui
dicționar se realizează prin din dicționar se
dicționar:
cheie (sau prin metoda realizează prin cheie:
get()):
dictionar = {"laptop":"IBM", dictionar = {"laptop":"IBM", dictionar = {"laptop":"IBM",
"creion":"Faber Castell", "creion":"Faber Castell", "creion":"Faber Castell",

7
Seminar 1 Python
Pachete software

"flipchart":"M3"} "flipchart":"M3"} "flipchart":"M3"}


print(dictionar) x = dictionar["laptop"] dictionar["laptop"] = "HP"
print (x) print(dictionar)

print(dictionar.get("laptop"))

Metode pentru dicționare

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

Operator Denumire Exemplu


+ Adunare x+y
- Scădere x-y
* Înmulțire x*y
/ Împărțire x/y
% Restul împărțirii x%y
** Exponențial x ** y
// Partea întreagă a împărțirii x // y

 Atribuire

Operator Exemplu Echivalent


= x=5 x=5
+= x += 3 x=x+3
-= x -= 3 x=x-3
*= x *= 3 x=x*3
/= x /= 3 x=x/3
%= x %= 3 x=x%3
//= x //= 3 x = x // 3
**= x **= 3 x = x ** 3

8
Seminar 1 Python
Pachete software

 Comparație

Operator Denumire Exemplu


== Egal x == y
!= Diferit x != y
> Mai mare x>y
< Mai mic x<y
>= Mai mare sau egal x >= y
<= Mai mic sau egal x <= y

 Logici

Operator Descriere Exemplu


and Returnează True dacă x < 5 and x < 10
ambele expresii sunt
adevărate
or Returnează True dacă cel x < 5 or x < 4
puțin o expresie este
adevărată
not Negația, inversează not(x < 5 and x < 10)
rezultatul returnând False
dacă rezultatul este adevărat

 Identitate

Operator Descriere Exemplu


is Returnează True dacă x is y
ambele variabile sunt același
obiect
is not Returnează True dacă x is not y
ambele variabile nu sunt
același obiect

 Apartenență

Operator Descriere Exemplu


in Returnează True dacă o x in y
secvență cu o valoare
specificată este prezentă în
obiect
not in Returnează True dacă o x not in y
secvență cu o valoare
specificată nu este prezentă
în obiect

2.5 Structuri de programare


Chiar dacă în alte limbaje indentarea nu e relevantă, în Python indentarea este esențială,
fiind utilizată pentru a indica un bloc de cod.

9
Seminar 1 Python
Pachete software

2.5.1 Structuri alternative


if

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')

2.5.2 Structuri repetitive


for

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 34 Exemplu 35 Exemplu 36


lista = ["laptop", lista = ["laptop", lista = ["laptop",
"creion", "flipchart"] "creion", "flipchart"] "creion", "flipchart"]
for x in lista: for x in lista: for x in lista:
print(x) if x == "creion": if x == "creion":
if x == "creion": break continue
break print(x) print(x)

range(), for else

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

nested loop, def

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

Exemplu 41 Exemplu 42 Exemplu 43


i=1 i=1 i=0
while i < 6: while i < 6: while i < 6:
  print(i)   print(i)   i += 1
  i += 1   if i == 3:   if i == 3:
    break     continue
  i += 1   print(i)

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'

Pentru introducerea unor valori de la tastatura, se utilizează funcția predefinită input


Exemplu 47 Exemplu 48
str = input("Enter your input: "); x=int(input('Introdu numarul:'))
print ("Received input is : ", str) if x>0:
print('nr pozitiv')
else: print('nr este zero sau negativ')

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

1. Să se citească un număr n < 10, să se creeze o listă de numere întregi de dimensiune n și să


se adauge elementele citite de la tastatură. Să se ordoneze crescător elementele listei și să se
afișeze lista.

2. Să se creeze o lista de 5 elemente cu denumirile unor orașe.


Să se realizeze o funcție care returnează lungimea fiecărui element (oraș) și să se afișeze lista
ordonată descrescător, utilizând opțiunile metodei sort(), în funcție de această lungime.

list.sort(reverse=True|False, key=myFunc)

Reverse Optional. reverse=True will sort the list descending. Default is reverse=False

Key Optional. A function to specify the sorting criteria(s)

3. Să se creeze o listă de liste cu denumiri de echipamente IT (telefon, laptop, tableta,


smart_tv), prețul și cantitatea acestora. Calculați valoarea fiecărui echipament, adăugați-o în
listă și sortați în funcție de valoare, utilizand functia lamda.
lista = [['telefon', 1000,2], ['laptop', 4500, 4], ['tableta',2000,5],
['tv',2500,3]]

4. Să se creeze două liste: lista_angajati cu numele și prenumele angajaților și


lista_clienti cu numele și prenumele clienților.
lista_angajati=['Popescu Vasile','Ionescu Gigel', 'Pop Maria']
lista_clienti=['Ionescu Gigel', 'Costache Ioana', 'Anton Eugenia']
Să se afișeze numele angajatului care este și client.

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%.

6. Să se creeze o funcție și să se determine dacă numărul primit ca parametru este sau nu


prim.

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

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