0% au considerat acest document util (0 voturi)
27 vizualizări53 pagini

Curs 7 - Limbajul Python

Încărcat de

Irina Cosovan
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
27 vizualizări53 pagini

Curs 7 - Limbajul Python

Încărcat de

Irina Cosovan
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

PROGRAMAREACALCULATOA

RELOR ȘI LIMBAJE DE
PROGRAMARE II
Introducere in Python
[Link]

PCLP II :: Introducere în Python Limbajul Python


▪ Creat
în 1989 de programatorul Guido van
Rossum
▪ Limbajde programare dinamic multi-
paradigmă: orientat pe obiect, programare
imperativă, funcțională sau procedurală.
▪ Este un limbaj de nivel înalt, foarte folosit
în dezvoltarea platformelor web
(Google,Yahoo etc.), dar și în calcul științific
▪ Python este un limbaj interpretat, nu
compilat → ușor de portat pe diverse SO sau
arhitecturi hardware

[Link]
2
[Link]
John M. Zelle, Python Programming An Introduction to Computer Science(3rd ed)

Interpretor vs.
PCLP II :: Introducere în Python

Compilator (1)
▪ Limbaj de nivel înalt:
▪ c = a+b
▪ Acestă intrucțiune trebuie translatată în

limbaj mașină pentru a putea fi executată de

calculator.
▪ Compilatoarele convertesc programele

scrise în limbaje de nivel înalt în limbajul

mașină al sistemului.
[Link]

Interpretor vs.
PCLP II :: Introducere în Python

Compilator (2)
▪ Interpretoarele simulează înțelegera unui
limbaj de nivel înalt a calculatoarelor;
▪ Sursa programului nu este translatată în
limbaj mașină;
▪ Un interpretor analizează și execută codul
sursă intrucțiune cu instrucțiune.
John M. Zelle, Python Programming An Introduction to Computer Science(3rd ed)

4
[Link]

Interpretor vs.
PCLP II :: Introducere în Python

Compilator (3)
▪ O dată ce un program este compilat, el poate fi

executat ori de câte ori este nevoie fără a fi nevoie de

codul sursă sau compilator.


▪ Dacă programul este interpretat, codul sursă și

interpretorul sunt necesare de fiecare dată la rularea

programului.
▪ În general, programele compilate rulează mai rapid

față de cele interpretate deoarece translatarea codului

sursă are loc o singură dată.


▪ Programele interpretate sunt mai ușor portabile; de

ex. un program executabil furnizat de un compilator

pentru Intel nu va rula pe o platformă Mac fără o

recompilare, spre deosebire de codul interpretat a

cărui portabilitate o asigură interpretorul.


[Link]
5
[Link]

PCLP II :: Introducere în Python Python 3.7.3

▪ Release Date: March 25, 2019


▪ [Link]

▪ “>>>”- Python este pregătit pentru a primi


comenzi, comenzi denumite instrucțiuni
(statements)

[Link]
6
[Link]
Crearea unui
PCLP II :: Introducere în Python

fișier Python
▪ Crearea unui fișier cu extensia .py,
folosind un editor de texte sau din consola
Python

[Link]
7
[Link]

PCLP II :: Introducere în Python Comentarii


▪ încep cu # și țin până la sfârșitul liniei
▪ începcu ’’’ și țin mai multe rânduri, până
la un nou ’’’

[Link]
8
[Link]
[Link]
▪ Sintaxa:
print(object(s), separator=separator, end=end,
file=file, flush=flush)
object(s) Any object, and as many as you like. Will be converted to string before printed
sep='separator' Optional. Specify how to separate the objects, if there is more than one.
Default is ' '
end='end' Optional. Specify what to print at the end. Default is '\n' (line feed)
file Optional. An object with a write method. Default is [Link]
flush Optional. A Boolean, specifying if the output is flushed (True) or buffered (False).
Default is False

Scrierea - print()
PCLP II :: Introducere în Python9

PCLP II :: Introducere în Python Citirea


▪ Sintaxa:
input([prompt]) -> string

prompt A String, representing a default message before the


input.
[Link]
10
[Link]
[Link]

Variabile. Tipuri de date


▪ Nu se declară
▪ Tipul variabilelor este stabilit în timpul
execuției
PCLP II :: Introducere în Python11

PCLP II :: Introducere în Python Variabile. Tipuri


de date
▪ Numerice – numerele sunt imutabile –

odată create valoarea nu se mai poate

schimba (operațiile crează noi obiecte) ✓int


(numere întregi) - numerele întregi (pozitive și

negative), dimensiune limitat doar de memoria

disponibilă. Operații: +, -, *, /, //, **, % comparare:==,!


=,<, > operații pe biți: |, ^, &, <<, >>, ~ ✓bool (boolean)
- Valorile True (1) și False (0); Operații: and, or, not
✓float (numere reale): numerele reale (dublă

precizie); Operatii: +, -, *, / comparare:==,!=,<, >

▪ Numere complexe

[Link] [Link]
[Link] [Link]

12
Variabile.
Tipuri de
date
PCLP II :: Introducere în Python13
Tipuri de
[Link]
[Link]

Variabile. date
PCLP II :: Introducere în Python14

PCLP II :: Introducere în Python Conversii de tip


- cast
▪ Conversia se realizează cu ajutorul
funcțiilor constructor:
▪ int()

▪ float()

▪ str()
[Link]
15
[Link]

PCLP II :: Introducere în Python Operatori

▪ Aritmetici

Operator Name Example

+ Addition x + y

- Subtraction x - y

* Multiplication x * y

/ Division x / y

% Modulus x % y

** Exponentiation x ** y

// Floor division x // y

[Link]
16
[Link]

PCLP II :: Introducere în Python Operatori


▪ Atribuire
Operator Example Same As
=x=5x=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
&= x &= 3 x = x & 3
|= x |= 3 x = x | 3
^= x ^= 3 x = x ^ 3
>>= x >>= 3 x = x >> 3
[Link]
<<= x <<= 3 x = x << 3
17
[Link]

Operatori

▪ Atribuirea multiplă
PCLP II :: Introducere în Python18

[Link]
Operatori

▪ Comparare

Operator Name Example

== Equal x == y

!= Not equal x != y

> Greater than x > y

< Less than x < y

>= Greater than or equal to x >= y

<= Less than or equal to x <= y


PCLP II :: Introducere în Python19

PCLP II :: Introducere în Python Operatori


▪ Logici
Operator Description Example
and Returns True if both statements are true x < 5 and x < 10
or Returns True if one of the statements is true x < 5 or x < 4
not Reverse the result, returns False if the result is
not(x < 5 and x < 10) true
[Link]

20

PCLP II :: Introducere în Python Operatori


▪ Identitate
Operator Description Example
is Returns true if both variables are the same object x is y
is not Returns true if both variables are not the same object x
is not y
▪ Apartenență
Operator Description Example
in Returns True if a sequence with the specified value is
x in y present in the object
not in Returns True if a sequence with the specified value is
x not in y not present in the object
[Link]

21

PCLP II :: Introducere în Python Operatori


▪ pe biți
Operator Name Description
& AND Sets each bit to 1 if both bits are 1
| OR Sets each bit to 1 if one of two bits is 1
^ XOR Sets each bit to 1 if only one of two bits is 1
~ NOT Inverts all the bits
<< Zero fill left
Shift left by pushing zeros in from the right and let the shift
leftmost bits fall off
>> Signed right
Shift right by pushing copies of the leftmost bit in from shift
the left, and let the rightmost bits fall off
[Link]

22

PCLP II :: Introducere în Python Blocuri

▪ Partea unui program care este executată


ca o unitate
▪ Secvență de instrucțiuni
▪ Se realizează prin identarea liniilor:
toate instrucțiunile identate la același nivel
aparțin aceluiași bloc
▪if ... else
[Link]
[Link]

23
▪for

▪while
PCLP II :: Introducere în Python24

[Link]
[Link]

Structuri de
control [Link]
[Link]
IF...ELSE
[Link]
[Link]

PCLP II :: Introducere în Python25 FOR


PCLP II :: Introducere în Python26

PCLP II :: Introducere în Python FOR


▪ Funcțiarange(stop) sau range(start,
stop [,step])
▪ Creează o listă
▪ [0, 1, ... , stop-1]

▪ [start, start+1, ... , stop-1]

▪ [start, start+step, ... , start+(n-1)*step]


[Link] [Link]
[Link] [Link]

27
WHILE
PCLP II :: Introducere în Python29

[Link]
[Link]

FOR [Link]
[Link]
PCLP II :: Introducere în Python28
WHILE
▪ Buclă infinită [Link]
[Link]

Șiruri de
caractere
▪ While ... else
PCLP II :: Introducere în Python30
▪ Extragerea unui
caracter

▪ Extragerea unui
subșir
PCLP II :: Introducere în Python31

PCLP II :: Introducere în Python Șiruri de


caractere
▪ Eliminarea spațiior dintr-un șir (de la început
sau de la sfârșit)

▪ Lungimea unui șir

[Link] [Link]
[Link] [Link]

32
Șiruri de
caractere
▪ Transformarea în
minuscule
▪ Transformarea
majuscule
în
caractere
PCLP II :: Introducere în Python33

▪ Împărțirea în
subșiruri

▪ Transformarea în
majuscule
PCLP II :: Introducere în Python34

[Link]
[Link]

Șiruri de
[Link]
[Link]
▪ Formatarea
șirurilor
Șiruri de PCLP II :: Introducere în Python35

caractere
PCLP II :: Introducere în Python Colecții
(Vectori)

▪ Liste - colecție ordonată și mutabilă


▪ Tuple - colecție ordonată și imutabilă
▪ Mulțimi- colecție neordonată și
neindexată
▪ Dicționare - colecție neordonată, indexată
și mutabilă
[Link] [Link]
[Link] [Link]

36
Liste

▪ Accesarea unui
element

▪ Modificarea unui
element
PCLP II :: Introducere în Python38

[Link]
[Link]

Liste
PCLP II :: Introducere în Python37
[Link] [Link]
[Link] [Link]
▪ Dimensiunea
liste
unei
Liste
Liste ▪ Adăugarea unui
element în listă
▪ Manipularea listei
folosind bucle ▪ APPEND

▪ Căutarea unui
element ▪ INSERT
PCLP II :: Introducere în Python40
PCLP II :: Introducere în Python39

PCLP II :: Introducere în Python Liste

▪ Ștergerea unui element în listă


▪ REMOVE

▪ POP (șterge ultimul din listă sau cel


indicat de index)

[Link] [Link]
[Link] [Link]

41
Liste

▪ Ștergerea întregii
liste
PCLP II :: Introducere în Python42
[Link]
[Link]
▪ LIST
▪ COPY Liste

▪ Copierea unei liste


PCLP II :: Introducere în Python43

Liste – metode
PCLP II :: Introducere în Python

predefinite
Method Description
append() Adds an element at the end of the list
clear() Removes all the elements from the list
copy() Returns a copy of the list
count() Returns the number of elements with the specified value
extend() Add the elements of a list (or any iterable), to the end of the
current list
index() Returns the index of the first element with the specified value
insert() Adds an element at the specified position
pop() Removes the element at the specified position
remove() Removes the item with the specified value
reverse() Reverses the order of the list
[Link]
sort() Sorts the list

44
[Link]

Liste
[Link]
PCLP II :: Introducere în Python45

[out]:

PCLP II :: Introducere în Python Liste (tablouri)


▪ Definire vector, initializare si afisare
N = 10 (1)tab = [0] * N (2)tab = [0 for i in
range(N)]
print(tab) [out]:
for i in tab:
print(tab[i],end=' ')
[out]:
[Link]

46

Lista comprehensivă
[Link]

Liste (tablouri)
▪ Citirea vectorului de la tastatura

[out]:
PCLP II :: Introducere în Python47

[out]:
[Link]

Liste (tablouri)
PCLP II :: Introducere în Python48

[out]:

[Link]

Liste (tablouri)
PCLP II :: Introducere în Python49
[Link]

Liste (tablouri)
▪ Definire matrice

[out]:
PCLP II :: Introducere în Python50
[Link]

Liste (tablouri)
▪ Definire matrice

[out]:
PCLP II :: Introducere în Python51
[Link]

Liste (tablouri)
▪ Definire matrice

[out]:
PCLP II :: Introducere în Python52
[Link]

Liste (tablouri)
▪ Definire matrice

[out]:
PCLP II :: Introducere în Python53

[out]:
[Link]

Liste (tablouri)
▪ Citire matrice de la tastatura
PCLP II :: Introducere în Python54

Tuple PCLP II :: Introducere în Python


/
Enumerari
▪ Colectie de elemente imutabila (elementele nu

pot fi modificate, vs. mutabila - liste)


▪ Dimensiune fixa ( nu pot fi adaugate elemente

cu append, dar suporta concatenarea cu alte

tuple)
▪ Elementele sunt liste)[Link]
elar/[Link]
incadrate intre () (vs. 55
[] –
PCLP II :: Introducere în Python Tuple
No. Function with Description

1 cmp(tuple1, tuple2)Compares elements of both tuples.

2 len(tuple)Gives the total length of the tuple.

3 max(tuple)Returns item from the tuple with max value.

4 min(tuple)Returns item from the tuple with min value.

5 tuple(seq)Converts a list into tuple.

[Link] [out]:
[Link]

56
Tuple
[Link]
[Link]

PCLP II :: Introducere în Python57

PCLP II :: Introducere în Python Dicționare


▪ Colecție neordonată, indexată și mutabilă
▪ Conține indecși de cuvinte și pentru
fiecare index conține o definiție.
▪ Indexul = KEY
▪ Definiția = VALUE
▪ Exemplu:

bdStud = {123:’Popescu Ion’, 124:’Grigorescu


Maria’, \ 125:’Andronic Cezar’}

[Link]
58
[Link]
No. Methods with Description
1 [Link]()Removes all elements of dictionary dict
2 [Link]()Returns a shallow copy of dictionary dict
3 [Link]()Create a new dictionary with keys from seq and
values set to value.
4 [Link](key, default=None)For key key, returns value or default
if key not in dictionary
5 dict.has_key(key)Returns true if key in dictionary dict, false
otherwise
6 [Link]()Returns a list of dict's (key, value) tuple pairs
7 [Link]()Returns list of dictionary dict's keys
8 [Link](key, default=None)Similar to get(), but will set
dict[key]=default if key is not
already in dict
9 [Link](dict2)Adds dictionary dict2's key-values pairs to dict
10 [Link]()Returns list of dictionary dict's values
[Link]

Dicționare
PCLP II :: Introducere în Python59

[out]:
[Link]

Dicționare
PCLP II :: Introducere în Python60

[Link]

Dicționare
PCLP II :: Introducere în Python61
[out]:

[Link]

Dicționare
PCLP II :: Introducere în Python62

PCLP II :: Introducere în Python Funcții


▪ Definirea
funcțiilor cu ajutorul sintaxei:
▪ def <nume_functie> ( [ <lista
parametri> ] ): bloc de instructiuni [return
valori]
▪ Nu se specifică tipul argumentelor, acesta
fiind transmis la apelul functiei. Ex.
def fractie(x,y):
if (y==0):
return else:
return float(x)/float(y)
[Link]

63

PCLP II :: Introducere în Python Funcții


▪ Funcțiilepot returna una sau mai multe
valori cu ajutorul instrucțiunii return.
Execuția instrucțiunii return fără argumente
face ca funcția să returneze valoarea None.
▪ Pentru a putea folosi o variabilă globală în
cadrul unei funcții, este necesar specificare
în cadrul funcției sintaxa:
global <nume_variabila>
x=5 [Link]

64
[Link]
x=?
PCLP II :: Introducere în Python Funcții
▪ Încadrul listei de argumente pot fi
transmise argumente cu valoare implicită

[Link] [Link]
[Link] [Link]

65
Funcții
[Link]
PCLP II :: Introducere în Python66
[Link]

Funcții
[out]:
▪ Afișarea
comentariilor din
funcție:

[Link] [out]:
[Link]
PCLP II :: Introducere în Python68

Funcții
PCLP II :: Introducere în Python67

PCLP II :: Introducere în Python Funcții cu un


număr variabil de argumente
(împachetarea
argumentelor )

[Link]
69
[Link]
[out]:

PCLP II :: Introducere în Python Funcții cu un


număr variabil de argumente
(despachetarea
argumentelor)

[out]:

[Link]
70
[Link]
[Link]
Module (import)
▪ Utilizarea unei functii din alt modul
[out]:
PCLP II :: Introducere în Python71

[Link]

Module (import ... as ...)


PCLP II :: Introducere în Python72

[out]:

[Link]

Module (import ... as ...)


PCLP II :: Introducere în Python73

PCLP II :: Introducere în Python Module Aplicație:


Evaluarea expresiilor aritmetice post-
fixate
▪ Exemple de expresii aritmetice post fixate 10 2
3 + / → (2+3)/10 = 0.5 a b – a b + * → (a-b)*(a+b) 10
→ 10 X → X
▪ Sintaxa în forma normală Backus: <expr_pfix>
::= <operand> | <expr_pfix> <expr_pfix> <operator>
<operand> ::= <nr_fără_semn> | <id_variabilă>
<nr_fără_semn> ::= <cifră> | <nr_fără_semn> <cifră>
<cifră> ::= 0 | 1 | 2 | . . . | 9 <id_variabilă> ::= <literă> |
<id_variabilă> <literă> <literă> ::= a | b | c | . . . |z | A | B
| C | . . . | Z | _ <operator> ::= + | - | * | /
[Link]
74
[Link]

PCLP II :: Introducere în Python Module Aplicație:


Evaluarea expresiilor aritmetice post-
fixate
▪ Fieexpresia 10 2 3 + * . Analiza sintactica
este următoarea:
75
1 [Link]
singur simbol neterminal de start → Expresie corectă
dpdv. sintactic

PCLP II :: Introducere în Python Module Aplicație:


Evaluarea expresiilor aritmetice post-
fixate

1023+*
push(3)

pop(3)

3 push(50)
push(50)
pop(2)
push(5) push(10)
push(5) 102 + 3 = 5
1010 * 5 = 50
pop(5) 1010 * 5 = 50
pop(5) 50
pop(5) 50
50
push(2) pop(50)
25 pop(50)
pop(10)
pop(50) [Link]
[Link]
PCLP II :: Introducere în Python77

Stiva vidă → expr. este


corectă

76
[Link]
[Link]

PCLP II :: Introducere în Python Module


▪ Temă: implementați funcțiile specifice
stivei în fișierul [Link] pentru a putea fi
folosite în aplicația pentru evaluarea
parantezelor
[Link]
78
[Link]
<file_object> = open (<file_name>,[<mod>])
Mode Description
'r' Open a file for reading. (default)
'w' Open a file for writing. Creates a new file if it does not exist or
truncates the file if it exists.
'x' Open a file for exclusive creation. If the file already exists, the
operation fails.
Open for appending at the end of the file without truncating it.
'a'
Creates a new file if it does

not exist.
't' Open in text mode. (default)
'b' Open in binary mode.
'+' Open a file for updating (reading and writing)
[Link]

Operații cu fișiere text


▪ Deschiderea unui fișier
PCLP II :: Introducere în Python79

Metode Descriere .read(size=-1) Citeste size octeti din fisier.


Dacă nu este specificat parametrul size
sau este specificată valoarea -1 pentru acest parametru, se
va citi întreg fișierul.
.readline(size=-1) Citeste size octeti de pe o linie din fisier.
Dacă nu este specificat nici
un argument sau este transmisă valoarea -1, atunci va fi citită
întreaga linie (sau restul de octeti rămași de pe linie).
.readlines() Se citesc liniile din fișier și se memorează într-o
listă.
[Link]

Operații cu fișiere text


▪ Citirea informațiilor din fișier
PCLP II :: Introducere în Python80

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