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([Link]())
transformarea şirul în litere mari - metoda upper(): print([Link]())
înlocuirea unui şir cu un alt şir - metoda replace():print([Link](" ", ""))
împărţirea şirului în mai multe şiruri după un separator - metoda split():
print([Link](",")) 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"]
[Link]("rucsac")
print(lista)
Elimină toate elementele listei (golirea listei) - Clear()
lista = ["laptop", "creion", "flipchart"]
[Link]()
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"]
[Link](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"]
[Link]()
print(lista)
Elimină elementul specificat - remove()
lista = ["laptop", "creion", "flipchart"]
[Link]("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([Link]("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)