Documente Academic
Documente Profesional
Documente Cultură
Folosește o sintaxă elegantă, ușor de înțeles. Este un limbaj ușor de folosit. Acest lucru face ca
Python să fie ideal pentru dezvoltarea prototipului software. Vine cu o bibliotecă standard, cu suport
general de programare, cum ar fi conectarea la servere web, căutarea de texte cu expresii regulate, citirea
și modificarea fișierelor, etc.
Modul interactiv al lui Python facilitează testarea fragmentelor scurte de cod. Există, de
asemenea, un mediu de dezvoltare asociat numit IDLE.
Este ușor de extins prin adăugarea de module noi implementate în limbaje de programare
compilate, cum ar fi C sau C ++.
Rulează pe orice sistem de operare, inclusiv Mac OS X, Windows, Linux și Unix, cu platforme
disponibile și pentru Android și iOS.
Se pot utiliza și alte medii integrate de dezvoltare cum ar fi: distributia Anaconda, PyCharm, etc.
- Prezinta o varietate de tipuri de date de baza: numere (format virgulă mobilă, numere complexe,
intreg), striguri (ASCII si Unicode), liste si dicționare.
- Suporta programarea obiect-orientată cu clase și moșteniri multiple
- Codul poate fi grupat în module și pachete
- Gestioneaza memoria in mod automat
Important:
In Python nu se utilizeaza acoladele {} pentru a delimita blocuri de program (functii, bucle for, while, if,
etc) Se utilizeaza indentarea.
im_a_parent:
im_a_child:
im_a_grand_child
im_another_child:
im_another_grand_child
Mediul interactiv:
Se pornește Anacoda prompt: si se introduce comanda python din linia de comanda (dupa cum se
observa in figura de mai jos)
Promptul >>> identifică mediul interactiv python in care se poate lucra direct si se pot introduce
direct comenzi.
Primul lucru pe care il putem remarca este că putem să realizam direct calcule de la acest prompt.
x+y
+ Add two operands or unary plus
+2
x-y
- Subtract right operand from the left or unary minus
-2
/ Divide left operand by the right one (always results into float) x/y
% Modulus - remainder of the division of left operand by the right x % y (remainder of x/y)
Floor division - division that results into whole number adjusted to the
// x // y
left in the number line
** Exponent - left operand raised to the power of right x**y (x to the power y)
Exercitiu:
Introduceti urmatoarele exemple de calcul de la promptul python >>> si observati rezultatele obtinute:
In modul interactiv, ultima valoare calculata este atribuita unei variabile implicite _
Exercitiu:
Introduceti urmatoarele exemple de calcul de la promptul python >>> si observati rezultatele obtinute:
Pe langa int si float, mai exista Decimal si Fraction. De asemenea, exista suport pentru numere
complexe.
Tot in modul interactiv se pot introduce rapid instructiuni si se pot executa imediat. Pentru programe
(scripturi) realizate in limbajul Python, cel mai eficient este sa introducem codul in fisiere cu extensia
*.py si sa executam aceste scripturi.
Exemplu:
Revenim la promptul de sistem dupa cum urmeaza: (calea este particulara pentru sistemul pe care este
instalat mediul de programare)
Liniile de cod introduse: (se remarca introducerea de comentarii cu simbolul # - aceste linii nu vor fi
interpretate la executia scriptului) se salveaza in fisierul cu extensia .py care identifica limbajul de
programare utilizat.
Observatii>
Prima instructiune print(2 ** 10) afiseaza valoarea 1024
Cea de a doua instructiune introduce o variabila cu numele x si initializata cu valoarea Spam!
Intructiunea print(x*8) va afisa de 8 ori sirul.
Daca se utilizeaza un mediu grafic si integrat de programare (De exemplu Spyder), vom obtine utilizand
acelasi fisier urmatorul rezultat:
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
Exercitii – sa se testeze din mediul interactiv >>> Python si sa se urmareasca rezultatele obtinute:
Introducem comenzile si observam efectele obtinute: (la >>> se introduce comanda, se da enter si se
obtine rezultatul comenzii).
>>> len(word)
6
>>>
Liste
Python prezinta tipuri de date compuse, utilizate pentru a grupa alte tipuri de date. Una dintre cele mai
versatile, este list. Se poate introduce intr-o lista de valori separate prin virgula intre paranteze patrate.
Listele pot contine diferite tipuri, dar uzual au acelasi tip de date.
Toate operatiile de trunchiere returneaza o noua lista care contine elementele dorite.
>>> squares[:]
[1, 4, 9, 16, 25]
Fata de stringuri care nu pot fi modificate (immutable), listele pot fi modificate (mutable), adica se poate
modifica continutul:
>>> cubes = [1, 8, 27, 65, 125] # something's wrong here
>>> 4 ** 3 # the cube of 4 is 64, not 65!
64
>>> cubes[3] = 64 # replace the wrong value
>>> cubes
[1, 8, 27, 64, 125]
De asemenea, se pot adauga noi componente la finalul listei, utilizand metoda append().
Functia print()
>>> i = 256*256
>>> print('The value of i is', i)
The value of i is 65536
Exercitii:
Rezolvare:
Codul sursa care se salveaza in fisier (de exemplu cu numele test.py) este dupa cum urmeaza:
a = 2
b = 3
sum = a + b
print(sum)
Se observa ca nu este necesar sa punem ; dupa fiecare instructiune ca in alte limbaje de programare,
dar nici nu va fi semnalizata ca eroare daca punem simbolul de terminare a instructiunii.
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
Din linia de comanda: python si numele fisierului (inclusiv calea)
a = 2;
b = 3;
sum = a + b;
print("Suma a doua numere este:" , sum);
Daca se utilizeaza un mediu integrat de dezvoltare (de exemplu Spyder) – eroarea este subliniata chiar
din faza de introducere a codului:
#a = 2;
a = input('Introduceti primul numar: ')
#b = 3;
b = input('Introduceti al doilea numar: ')
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
sum = int(a) + int(b);
print("Suma a doua numere este:" , sum);
Observatii:
Cu functia input() se introduc date de la tastatura – acestea au insa formatul de string. Daca nu se
utilizeaza conversia (int) pentru a si b rezultatul va fi 23 (adica concatenare!)
In continuare, consideram cazul in care dorim numere reale (inclusiv formatarea la afisare):
La executia scriptului:
Observatii:
Alte exemple pentru format()
Exercitiul 2)
Sa se calculeze si sa se afiseze aria unui cerc de raza introdusa de la tastatura (de tip float)
Codul sursa:
import math
raza = float(input('Introduceti raza cercului: '))
aria = float(math.pi *raza**2)
print("Aria cercului de raza {} este {} " .format(raza, aria))
Observatii:
Se importa modulul math pentru pi.
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
Codul este echivalent cu:
Rezolvare:
Structuri de control
Instructiunea if
forma generala:
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
Exercitiu:
Executati urmatorul script acesta genereaza un numar random in intervalul 10, 49.
Cu ajutorul if se verifica daca numarul generat este mai mare/mai mic decat 20, daca este impar,
etc.
import random
# generare numar intreg in intervalul 10 to 49.
i = random.randrange(10,50)
print('Numarul generat aleatoriu este', i)
# Analiza a proprietatilor numarului generat.
if i < 20:
print("Este mai mic decat 20.")
if i % 3 == 0:
print("Este divizibil cu 3.")
elif i == 20:
print("Este exact 20! .")
else:
if i % 2 == 1:
print("Este un numar impar.")
else:
print("Este dublul numarului", i / 2, '.')
print("Este mai mare decat 20!")
Observatii:
Importul pachetului random – pentru generare de numere random.
De asemenea se va observa aranjarea codului (indentarea) in instructiunea if Executati scriptul de mai
multe ori la rand pentru a genera diferite numere in intervalul 10:49. Se vor verifica conditiile pentru
fiecare numar generat si se vor afisa mesajele corespunzatoare.
Bucla while
Forma generala:
Instructiunea for
Forma generala:
power = 1
for y in range(0,21):
print("2 to the", y, "is", power)
power = 2 * power
# Scanning a list.
fred = ['And', 'now', 'for', 'something', 'completely', 'different.']
;
for i in range(0,len(fred)):
print(i, fred[i])
Instructiunea break
Este utilizata pentru a putea iesi dintr-o bucla cand se regaseste o anumita condirtie. (de regula dupa o
instructiune if). Este la fel ca si in limbajul C.
number = 0
for number in range(10):
number = number + 1
if number == 5:
break # break here
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
print('Number is ' + str(number))
print('Out of loop')
Number is 1
Number is 2
Number is 3
Number is 4
Out of loop
Observatii: Cand se atinge conditia number == 5, nu se mai executa afisarea pentru aceasta valoare si
se iese din bucla, fara a mai parcurge bucla for pana la 10.
Instructiunea continue
Se utilizeaza cand se doreste sa fie sarita o parte dintr-o bucla, dar se doreste sa fie completate toate
iteratiile din bucla. Este la fel ca in C/C++;
number = 0
for number in range(10):
number = number + 1
if number == 5:
continue # continue here
print('Number is ' + str(number))
print('Out of loop')
Number is 1
Number is 2
Number is 3
Number is 4
Number is 6
Number is 7
Number is 8
Number is 9
Number is 10
Out of loop
Observatii: Cand se atinge conditia number == 5, nu se mai executa afisarea pentru aceasta valoare si
se continua bucla for pana la 10.
Instructiunea pass
Când se indeplineste o condiție externă, instrucțiunea pass permite ocuparea de condiție fără ca
buclele să fie afectate;
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
number = 0
for number in range(10):
number = number + 1
if number == 5:
pass # pass here
print('Number is ' + str(number))
print('Out of loop')
Number is 1
Number is 2
Number is 3
Number is 4
Number is 5
Number is 6
Number is 7
Number is 8
Number is 9
Number is 10
Out of loop
O functie reprezinta un bloc de instructiuni care realizeaza o actiune necesara in program. O functie
poate fi reutilizata.
In Python (ca si in C/C++) exista functii predefinite.
print()
int() care converteste un string in intreg
len() care returneaza lungimea unui obiect;
Observatii: Pentru definirea unei functii se utilizeaza cuvantul cheie def. Numele functiei in acest caz
este hello(): si urmeaza corpul functiei. Atentie la spatierea codului.
Rezultatul la iesire:
Hello, World!
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
Rezolvare:
Pentru a rezolva problema, se poate utiliza o functie in care se verifica daca intr-un string introdus de la
tastatura este o vocala.
Exercitiu: : sa se execute scriptul de mai jos
Functii cu argumente
Sa se scrie un program in care se va utiliza o functie care primeste 3 argumente x,y si z. Suma
acestora in diferite moduri va fi afisata de catre functie. Se va apela functia.
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
Rezolvare:
La iesire se obtine:
345
Sa se scrie un program care calculeaza patratul unui numar. Se va crea o functie care primeste
valorea ca argument si returneaza patratul acesteia. Valoarea va fi afisata
def square(x):
y = x ** 2
return y
result = square(3)
print(result)
La iesire va fi afisat:
9
Observatii: Faptul ca square returneaza valoarea y (rezultata in urma calculului), se poate utiliza intr-o
expresie result = square(3), result va avea valoarea 9 (valoarea 3 la patrat)
Exercitiu: Sa se generalizeze programul asttfel incat numarul pentru care se doreste a se calcula
patratul, sa fie preluat de la tastatura. Valoarea va fi transmisa ca si argument in functia square.
Utilizarea *args
Se poate utiliza un argument generic, fara a mai introduce un numar specific de argumente.
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
Exercitiu: : sa se execute scriptul de mai jos sa se urmareasca modul de lucru pentru *args
def multiply(*args):
z = 1
for num in args:
z *= num
print(z)
multiply(4, 5)
multiply(10, 9)
multiply(2, 3, 4)
multiply(3, 5, 10, 6)
La iesire:
20
90
24
900
> Greater that - True if left operand is greater than the right x>y
< Less that - True if left operand is less than the right x<y
x = 10
y = 12
# Output: x > y is False
print('x > y is',x>y)
# Output: x < y is True
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
print('x < y is',x<y)
# Output: x == y is False
print('x == y is',x==y)
# Output: x != y is True
print('x != y is',x!=y)
# Output: x >= y is False
print('x >= y is',x>=y)
# Output: x <= y is True
print('x <= y is',x<=y)
Operatori logici:
x = True
y = False
# Output: x and y is False
print('x and y is',x and y)
# Output: x or y is True
print('x or y is',x or y)
# Output: not x is False
print('not x is',not x)
Operatorii la nivel de bit se utilizeaza pentru valori reprezentate in binar si opereaza bit cu bit.
Operatori de asignare
= x=5 x=5
+= x += 5 x=x+5
-= x -= 5 x=x-5
*= x *= 5 x=x*5
/= x /= 5 x=x/5
%= x %= 5 x=x%5
//= x //= 5 x = x // 5
**= x **= 5 x = x ** 5
|= x |= 5 x=x|5
^= x ^= 5 x=x^5
Exemple de programe
Sa se scrie un program care calculeaza factorialul unui numar numar introdus de catre
utilizator
Rezultatul programului:
Daca se introduce de exemplu valoarea 7 la iesire se obtine 5040.
Observatii: Rezultatul programului este acelasi cu cel de mai sus. Comentariu pentru linii multiple este
""" la inceput si respectiv la sfarsitul comentariului.
Sa se scrie un program pentru a converti in format binar, octal sau hexazecimal un numar zecimal
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
Rezultat:
Valoarea zecimala 344 este:
0b101011000 in binar.
0o530 in octal.
0x158 in hexazecimal.
Exercitiu: Sa se modifice programul, astfel incat valoarea numarului sa fie preluata de la tastatura. Sa se
modifice programul de mai sus astfel incat sa se utilizeze si sa se apeleze o functie care primeste ca
argument valoarea zecimala introduse de catre utilizator.
Sa se scrie un program pentru a converti in format binar un numar zecimal se vor utiliza functii
recursive
Numerele zecimale se convertesc in format binar prin impartirea succesiva a numarului la 2 si se iau in
ordine inversa valorile restului impartirii: (exemplul de mai jos se converteste valoarea 34 in zecimal
in binar prin secventa 100010
def convertToBinary(n):
# functie pentru a afisa numarul binar - se utilizeaza functii
recursive
if n > 1:
convertToBinary(n//2)
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
print(n % 2,end = '')
# decimal number
dec = 34
convertToBinary(dec)
Rezultat:
Valoarea care se converteste este 34 si se obtine valoarea in binar 100010
Exercitiu: Sa se modifice programul, astfel incat valoarea numarului sa fie preluata de la tastatura.
Sa se scrie un program care afiseaza toate numerele prime dintr-un interval dat
# intervalul introdus
lower = 900
upper = 1000
print("Numerele prime intre",lower,"and",upper,"sunt:")
for num in range(lower,upper + 1):
# mai mari ca 1
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
Rezultat:
Numerele prime intre 900 and 1000 sunt:
907
911
919
929
937
941
947
953
967
971
977
983
991
997
import calendar
yy = int(input("Introduceti anul: "))
mm = int(input("Introduceti luna: "))
# afisare calendar
print(calendar.month(yy, mm))
import numpy as np
import matplotlib.pyplot as plt
n_groups = 5
means_men = (20, 35, 30, 35, 27)
std_men = (2, 3, 4, 1, 2)
means_women = (25, 32, 34, 20, 25)
std_women = (3, 5, 2, 3, 3)
fig, ax = plt.subplots()
index = np.arange(n_groups)
bar_width = 0.35
opacity = 0.4
error_config = {'ecolor': '0.3'}
ax.set_xlabel('Group')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
Laborator – Software pentru Aparatura Medicala- Ioana Dogaru
ax.set_xticks(index + bar_width / 2)
ax.set_xticklabels(('A', 'B', 'C', 'D', 'E'))
ax.legend()
fig.tight_layout()
plt.show()
Rezultat:
Bibliografie:
[1] Python Software Foundation - https://www.python.org/
[2] Anaconda IDE - https://www.anaconda.com/
[3] Mark Lutz – OReilly – Learning Python
[4] https://www.programiz.com/python-programming
[5] http://sandbox.mc.edu/~bennet/python/index.html
[6] Lisa Tagliaferri - How To Code in Python 3, ISBN 978-0-9997730-1-7
[7] Guido van Rossum and the Python development team – Python tutorial
[8] Matplotlib - https://matplotlib.org/gallery/statistics/barchart_demo.html