Sunteți pe pagina 1din 24

Curs 1 Python

Prof. Dr. Adina Uta


1. Introducere
 Free și Open Source – Free / Libré și Open Source Software - puteți să distribuiți
gratuit copii ale acestui software, să citiți codul sursă, să efectuați modificări și să
folosiți bucăți din acesta în noile programe gratuite
 Portabil - pe GNU / Linux, Windows, FreeBSD, Macintosh, Solaris, OS / 2, Amiga,
AROS, AS / 400, BeOS, OS / 390, z / OS, Palm OS, QNX, VMS, Psion, Acorn RISC
OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE și PocketPC! Puteți chiar
utiliza o platformă ca Kivy pentru a crea jocuri pentru computer și pentru iPhone, iPad
și Android.
 Orientat Obiect - Python susține programarea orientată spre procedură, precum și
programarea orientată pe obiecte
 Extensibil - Dacă aveți nevoie de o bucată critică de cod pentru a rula foarte repede
sau doriți să nu aveți o bucată de algoritm care să nu fie deschisă, puteți să codificați
acea parte a programului în C sau C++ și apoi să o utilizați din programul dvs. Python
 Încorporabil - Puteți încorpora Python în programele C / C ++ pentru a oferi
capabilități de scripting pentru utilizatorii programului dvs.
 Biblioteci extinse - Biblioteca standard Python este într-adevăr imensă. Acesta vă
poate ajuta să faceți diverse lucruri care implică expresii regulate, generarea de
documente, testarea unităților, filetarea, baze de date, browsere web, CGI, FTP,
email, XML, XML-RPC, HTML, fişiere WAV, criptografie, GUI (graphical user
interfaces) și alte facilităţi dependente de sistem. Amintiți-vă, toate acestea sunt
întotdeauna disponibile oriunde este instalat Python. Pe lângă biblioteca standard,
există și alte biblioteci de înaltă calitate pe care le puteți găsi la
Python Package Index.
Generalitati
 Comentarii - încep cu caracterul #

 Constante literare - un exemplu de constanta literala este un numar ca 5, 1.23 sau


un sir ca "Acesta este un sir" sau "Este un sir!".

 Numerele - sunt în principal de două tipuri –


 întregi - ex 2
 float. 3.23 și 52.3E-4 (52.3 * 10 ^ -4 ^)
 Siruri de caractere - ‘şir de caractere’ sau "şir de caractere ".

 Fiecare instrucţiune se scrie pe un rând. Dacă se doreşte scrierea mai multor


instrucţiuni pe acelaşi rând se folodeşte ; (i = 5; print(i);)

 Indentare – Caracterul spațiul este important în Python.


 Spațiul principal (spațiile și tab-urile) de la începutul liniei logice este utilizat
pentru a determina nivelul de indentare al liniei logice, care la rândul său este
folosit pentru a determina gruparea de declarații.
 Aceasta înseamnă că declarațiile care merg împreună trebuie să aibă aceeași
indentare. Fiecare astfel de set de declarații se numește bloc.
 O indentare greșită poate da naștere unor erori.
 Metoda format()
Programul
varsta = 20
nume = 'Popescu‘
print('{0} a avut {1} ani cand a scris aceasta carte'.format(nume, varsta))
print('De ce {0} a scris aceasta carte?'.format(nume))

va avea ca ieşire
Popescu a avut ani cand a scris aceasta carte
De ce Popescu a scris aceasta carte?

 Combinarea unui şir de caractere cu o variabilă +,


x = "pachete software“
print("Seminar " + x)

sau

x = "Seminar "
y = "Pachete Software"
z =  x + y
print(z)
2. Elemente de programare
2.1. Tipuri de date

 Numeric - sunt create atunci cand li se atribuie valoare


 Nu necesita declarare.
 Int sau integer reprezintă un număr întreg, pozitiv sau negativ, fără zecimale, de lungime
nelimitată.
 Float - număr pozitiv sau negativ, cu una sau mai multe zecimale.
 Complex conţine "j" care desemnează partea imaginară

 Şiruri de caractere
 marcate cu “ ” sau ‘ ’
 Sunt considerate ca vectori.
 Parantezele [ ] sunt utilizate pentru a accesa elementele şirului.

Pentru şirul a = "Seminar pachete software“


 obţinerea caracterului de la poziţia 1 (primul caracter are poziţia 0): print(a[1])
 extragerea unui subşir. Obţinerea caracterelor de la poziţia 2 la 5 (exclusiv):
print(a[2:5])
 returnarea lungimiia şirului - metoda len(): print(len(a))
 transformarea şirul în litere mici - metoda lower(): print(a.lower())
 transformarea şirul în litere mari - metoda upper(): print(a.upper())
 înlocuirea unui şir cu un alt şir - metoda replace():print(a.replace(" ", ""))
 împărţirea şirului în mai multe şiruri după un separator - metoda split():
print(a.split(",")) face să se obţină o lista de valori ['Seminar', ' pachete software']
 Variabile
 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.
 o variabilă nu se declară neapărat explicit, fiind necesar să i se atribuie valoare.
 nu este necesar să se precizeze tipul de data al variabilei
x=5
y = "Python"
print(x)
print(y)
 Tipul de data al variabilei poate fi schimbat ulterior
x = 4 - x este de tip int
x = "Python" - x este de tip str
print(x)
 Specificarea tipului de dată pentru o variabilă - Se utilizaza constructorii:
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.
Tipuri de variabile – Colecţii de date

Liste

 Lista este o structură de date care deţine o


colecţie ordonată de elemente
 Permite elemente identice.
 Elementele sunt despărţite prin virgula.
 Lista de articole ar trebui să fie închisă în
paranteze pătrate [ ].
 După ce aţi creat o listă, puteţi să adăugaţi, să
eliminaţi sau să căutaţi elemente din listă.
 Elementele pot fi modificate.
Crearea şi afişarea unei liste
lista = ["laptop", "creion", "flipchart"]
print(lista)
Accesarea elementelor din listă se realizează prin index:
lista = ["laptop", "creion", "flipchart"]
print(lista[1])
Modificarea unui element:
lista = ["laptop", "creion", "flipchart"]lista[1] = "carioca“
print(lista)
Adaugă un element la sfârşitul listei - Append()
lista = ["laptop", "creion", "flipchart"]
lista.append("rucsac")
print(lista)
Elimină toate elementele listei (golirea listei) - Clear()
lista = ["laptop", "creion", "flipchart"]
lista.clear()
print(lista)
Crează o copie a listei copy()
Ştergerea întreagii liste del()
lista = ["laptop", "creion", "flipchart"]
del lista
Eliminarea elementului de la indexul specificat
lista = ["laptop", "creion", "flipchart"]
del lista [0]
print(lista)
 Determinarea numărului de elemente din listă - len()
lista = ["laptop", "creion", "flipchart"]
print(len(lista))
 Returnează numărul de apariţii al elementului în listă - count()
 Adăugă elemente la sfârşitul unei liste - extend()
 Returnează indexul unui element- index()
 Adaugă un element la poziţia specificată - insert()
lista = ["laptop", "creion", "flipchart"]
lista.insert(1, "rucsac")
print(lista)
 Elimină elementul de la poziţia specificată sau ultimul element în cazul în care
indexul nu este specificat - pop()
lista = ["laptop", "creion", "flipchart"]
lista.pop()
print(lista)
 Elimină elementul specificat - remove()
lista = ["laptop", "creion", "flipchart"]
lista.remove("laptop")
print(lista)
 Inversează ordinea elementelor în listă - reverse()
 Sortează lista sort()
 Crearea unei liste prin intermediul constructorului - list().
lista = list(("laptop", "creion", "flipchart")) #observaţi parantezele rotunde duble
print(lista)
Tupluri
 colecţii de date ordonate şi nemodificabile.
 permit elemente identice.
 sunt reprezentate utilizând ( )
 Crearea şi afişarea unui tuplu:
tuplu = ("laptop", "creion", "flipchart")
print(tuplu)
 Accesarea elementelor din tuplu se realizează prin index
tuplu = ("laptop", "creion", "flipchart")
print(tuplu[1])
 Modificarea unui element nu este posibilă,
tuplu = ("laptop", "creion", "flipchart")
tuplu[1] = "carioca“
TypeError: 'tuple' object does not support item assignment
 count() - Returnează numărul de apariţii al elementului în
tuplu index() - Returnează poziţia unui element în tuplu
Seturi
 sunt folosite atunci când existenţa unui obiect într-o
colecţie este mai importantă decât ordinea sau de câte
ori apare.
 folosind seturi, puteţi testa pentru apartenenţă,
 Colecţii de date neordonate
 Neindexate
 Nu pot fi modificate elementele unui set
 Nu sunt acceptate elemente identice.
 Accesarea elementelor din set nu este posibilă,
 Seturile sunt reprezentate prin { }
 Elementele pot fi parcurse cu for
 Existenţa unui element poate fi verificată cu in
 Crearea şi afişarea unui set (fiind elemente neordonate,
afişarea este aleatoare)
set = {"laptop", "creion", "flipchart"}
print(set)
 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 elementelenecomune 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
Dicţionare
 Un dicţionar este ca o agendă unde găsiţi adresa sau datele de contact ale unei persoane,
cunoscând doar numele acesteia, adică asociăm cheile (numele) cu valorile (detalii).
 cheia trebuie să fie unică, la fel cum nu puteţi afla informaţiile corecte dacă aveţi două
persoane cu acelaşi nume.
 Colecţii de date neordonate,
 Modificabile
 Indexate.
 Nu sunt admise elemente identice
 Reprezentate prin { }
 Au suplimentar chei şi valori.
 Crearea şi afişarea unui dicţionar:
dictionar = {"laptop":"IBM", "creion":"FaberCastell", "flipchart":"M3"}
print(dictionar)
 Accesarea elementelor din dicţionar se realizează prin cheie:
dictionar = {"laptop":"IBM", "creion":"FaberCastell", "flipchart":"M3"}
x = dictionar["laptop"]
print(x)
sau prin metoda get():
print(dictionar.get("laptop"))
 Modificarea unui element din dicţionar se realizează prin cheie:
dictionar = {"laptop":"IBM", "creion":"FaberCastell", "flipchart":"M3"}
dictionar["laptop"] = "HP"
print(dictionar)
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ă.
update() - Actualizează dicţionarul cu perechile cheie-
valoare specificate
values() - Returnează o listă cu toate valorile dicţionarului
2.3. Operatori
2.4. Structuri de programare
 indentarea este esenţială, fiind utilizată pentru a indica un bloc de cod.

2.4.1 Structuri alternative – Instrucţiunea IF


 Sintaxa
if condiţie:
instructiune
instructiune
……
elif condiţie:
instructiune
instructiune
……
else:
instructiune
instructiune
……
instrucţiune din afara If

(Această ultimă instrucţiune este întotdeauna executată după executarea instrucţiunii if.)
Clauza elif care combină efectiv două declaraţii if else - if else într-o singură declaraţie
combinată if-elif-else.
Acest lucru face ca programul să fie mai uşor şi reduce cantitatea de indentare necesară.
Declaraţiile elif şi else trebuie să aibă simbolul : la sfârşitul liniei logice urmate de blocul
de declaraţii corespunzător (cu indentare corespunzătoare, desigur)
O instrucţiune if poate fi imbricată.
START

X = 23

Citeste Y

NU DA
Y=X
NU DA
Afiseaza “Ai ghicit”
Y<X

Afiseaza “Y > X” Afiseaza “Y < X” “Felicitari”


” ”

Afiseaza “Gata”

STOP
 Exemplu
 Pentru introducerea unor valori de la tastatura,
se utilizează funcţia predefinită input
x = 23
y = int(input(Introduceti un numar: '))
if y == x:
print(‘Ai ghicit')
print('Felicitari')
elif y < x:
print(‘Y < X’)
else:
print(‘Y < X’)
print('Gata')
2.4.2. Structuri repetitive – Instrucţiunile
WHILE şi FOR
Instrucţiunea While
 Instrucţiunea while permite să se execute
în mod repetat un bloc de declaraţii atâta
timp cât o condiţie este adevărată.
 Ea este o declaraţie de tip buclă.
 O declaraţie while poate avea o altă
clauză opţională.
Sintaxa
WHILE condiţie
Bloc de instrucţiuni
START

X = 23

Raspuns = adevarat

DA
Raspuns = adevarat

NU Citeste Y

NU DA
STOP Y=X
DA
Afiseaza “Ai ghicit”
Y<X

Afiseaza “Y > X” Afiseaza “Y < X” Raspuns = fals


” ”

Afiseaza “Sfarsit încercare”



 Exemplu
x = 23
raspuns = True
while raspuns:
y = int(input(Introduceti un numar: '))
if y == x:
print(‘Ai ghicit')
raspuns = False
elif y < x:
print('Nu, numarul trebuie sa fie mai mare')
else:
print('Nu, numarul trebuie sa fie mai mic')
print(‘Sfarsit încercare')
Instrucţiunea For

 Sintaxa
for conditie:
bloc instrucţiuni
else:
bloc instrucţiuni

 Exemplu
for i in range(1, 5):
print(i)
else:
print('i este in afara intervalului')

 Funcţia range() returnează o secvenţă de numere


 Clauza else se execută când se termină for
Instrucţiunea BREAK
 este folosită pentru a ieşi dintr-o buclă, adică se opreşte executarea unei
instrucţiuni while sau for, chiar dacă condiţia de buclă nu a devenit Falsă sau
secvenţa de elemente nu a fost complet repetată.
i=1
while i<6:  
print(i) 
if i == 3:   
break  
i += 1

Instrucţiunea CONTINUE
 este folosită pentru a ignora restul instrucţiunilor din blocul actual de buclă şi a
continua la iteraţia următoare a buclă.
i=0
while i<6:
 i += 1
if i == 3:
    continue
print(i)

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