Sunteți pe pagina 1din 27

PYTHON – CURS 3

Tuplu
Dictionar
Subprograme. Recursivitate
TUPLU
 Tuplurile reprezintă secvențe de valori care pot fi de tipuri diferite,
dar care nu pot fi modificate. Elementele tuplului se scriu între
paranteze rotunde.

Exemple:
tuplul vid: t = ()
 culori = (”Rosu”, ”Verde”, ”Alb”,”Violet”)
 prime = (2,5,7,11,13,17,19)
 Crearea unui tuplu:
atribuire: tuplu=(valoare1, valoare2, ..., valoare k)
 folosirea operatorilor: +, *
 transformarea unei liste într-un tuplu: tuplu = tuple(lista)
 transformarea unui șir de caractere în tuplu: tuplu = tuple(sir)
 Afisare tuplu: print(tuplu) - se afișează toate elementele tuplului.
Operatori: + (concatenarea tuplurilor), * (duplică elemente), in
(apartenență).
 Funcții: len(lista), min(lista), max(lista), tuple(secventa).
ACCESAREA ELEMENTELOR TUPLULUI

nume_tuplu[index]

nume_tuplu[0] - primul element,


nume_tuplu[i] - elementul cu indexul i
nume_tuplu[i:j] - elementele din intervalul [i,j)
nume_tuplu[i:] - toate elementele tuplului începând cu
indexul i
OPERATII TUPLU
t1=(1,2,3)
t2=(4,5,6)

t3 = t1+t2
print(t3)

t4=t1*2+t2
print(t4)
APLICATII
 Fie t1 si t2 doua tupluri care reprezintă două mulțimi de
numere întregi date prin primul și ultimul element. Să se
afișeze intersecția, reuniunea și diferența lor acestora.
 Fie un tuplu t ce reține coeficienții unei ecuații de gradul 2.
Fără a rezolva ecuația aflați numărul de soluții și natura
acestora.
 Fie un tuplu ce reține cifrele unui CNP. Afișați vârsta
reținută în cifrele CNP-ului si data nașterii după formatul:

 zi (număr) / luna (sir de caractere: ianuarie, februarie, martie etc)


/an (număr).
DICTIONARE - DICT
O variabilă de tip dict este o secvență de valori care se identifica prin
chei. Elementele unui dicționar se scriu între acolade.

Exemple:
fibonacci= {'a1':0,'a2':1, 'a3':1, 'a4':2, 'a5': 3, 'a6':5}
culori = {'c1':'alb', 'c2':'roz', 'c3':'rosu'}
d = {'disc': ['Matematica', 'Informatica', 'Fizica'], 'Nr_ore': [4,2,3] }
 Crearea unui dicționar:
dictionarul vid:nume_dict = {} sau nume_dict = dict()
 dictionar nevid: nume_dict = {'cheie1': val1, 'cheie2': val2,...,
'cheiek': valk}
 Cheile nu se pot modifica și nu se permit chei duplicat. Valorea
poate fi de tip numeric, sir de caractere, sau tip structurat.
OPERATII PE DICTIONARE
 Actualizarea: adaugare intrare nouă (pereche cheie-valoare), modificare
intrare existentă: dictionar.update({cheie:valoare})
 Ștergere : intrările dicționarul:
 del dictionar[cheie] – sterge o cheie
 dictionar.clear() – sterge toate intrarile (dictionarul devine vid)
 del dictionar – sterge dictionarul
 Operatori:
in, not in - permit verificarea apartenenței cheilor și valorilor

 Funcții:
len(dicționar) - returnează numărul de perechi cheie-valoare
type(dicționar) - transformă dicționarul în tipul specificat: listă, tuplu, șir
de caractere

 Metode:
nume_dicționar.clear(), nume_dicționar.copy(), nume_dicționar.keys(),
nume_dicționar.values(), nume_dictionar.items(), nume_dicționar.has_key()
etc.
EXEMPLE
culori = {'c1':'alb','c2':'verde'}
print(culori)
print(culori['c1'])
print(culori.get('c1'))

culori.update({'c2':'Gri'})
print(culori)

del culori['c2']
print(culori)

culori.clear()
print (culori)

del culori
print(culori)
PARCURGERE DICTIONARE DUPA CHEI/VALORI
Dicționarele pot fi parcurse pe baza cheilor, valorilor și a perechilor cheie-valoare în
scopul preluării/ afișării valorilor folosind structura repetitivă - for.

culori = {'c1':'alb','c2':'verde'}
print(culori)
print(culori['c1'])
print(culori.get('c1'))

culori.update({'c2':'Gri'})
print(culori.items())
print(culori.keys())
print(culori.values())

for key in culori:


print(culori[key])
for key, val in culori.items():
print(val)
for key, val in culori.items():
print('Culoarea ', key, ' este ', val)
DICTIONARE - VALORI DE TIPURI STRUCTURATE

Elementele unui dicționar pot fi liste sau tupluri. În exemplu se poate


observa că fiecare element al dicționarului este o listă, iar pentru
note, fiecare notă este la rândul ei o listă. Astfel, pentru cei n elevi se
citesc datele într-un for și se actualizează dicționarul conform
definițiilor de accesare a cheilor și elementelor listei.
EXERCITII
1. Fie un dicționar ce reține temperaturile din cele 7 zile ale unei
săptămâni după formatul: zi - temperatură. Afișați ziua în care s-a
înregistrat cea mai mică și cea mai mare temperatură.
Calculați temperatura medie a săptămânii ca media aritmetică a tuturor
valorilor înregistrate în săptămână.

2.Creați un dictionar ce retine numele și vârsta unor persoane.


Sa se afișeze persoanele ordonate descrescător după vârstă.
Sa se afișeze persoanele ordonate descrescător după nume.
3. Creati un dicționar ce reține produsele unui magazin cu prețul și
stocul. Știind că în fiecare zi se vinde câte un produs din fiecare, să se
afișeze suma încasată după 5 zile și stocul din fiecare produs. Se
presupune că stocul fiecărui produs este mai mare decât 5.
4. Fie două dicționare ce rețin numele unor elevi și notele lor: catalog1
- reține notele la matematică și catalog2, notele la informatică. Creați
un singur catalog ce reține toate notele elevilor.
SUBRUTINE
 Secvențe de cod ce pot fi utilizate de mai multe
ori în cadrul programelor.
SUBRUTINE DEFINITE DE UTILIZATOR
 Subrutinele definite de utilizator pot fi împărțite în două
categorii: de tip funcție și de tip procedură.
EXEMPLE

import math import math

def arieD(l, L): def arieD(l, L):


return l*L return l*L
def arieC(r): def arieC(r):
return math.pi*r*r return math.pi*r*r
def main():
l=10 l=10
L=20 L=20
r=5 r=5
print(arieD(l,L)) print(arieD(l,L))
print('Aria cerc este print('Aria cerc este
{:5.2f}'.format(arieC(r))) {:5.2f}'.format(arieC(r)))
APLICATII
 Scrieți o funcție care primește ca parameru un număr întreg n și
returnează suma cifrelor sale.
 Scrieți o funcție care primește ca parameru un număr întreg n și
returnează oglinditul său.
 Scrieți o funcție care verifică dacă este număr prim. Folosiți
funcția pentru a determina câte numere prime sunt într-o listă.

 Scrieți o funcție care verifică dacă este pătrat perfect. Folosiți


funcția pentru a determina câte pătrate perfecte sunt într-o listă.
 Scrieți o funcție care verifică dacă două numere sunt prime între
ele. Folosiți funcția pentru a determina perechile consecutive de
numere prime între ele dintr-o listă.
 Scrieți o funcție care returnează transcrierea în baza 2 a unui
număr. Folosiți funcția pentru a transforma în baza 2 elementele
unei liste de numere naturale.
RECURSIVITATE
 Recursivitatea este un mecanism general de elaborare a
programelor care constă în posibilitatea ca un subprogram să se
autoapeleze.
 În Python, pentru a exprima recursivitatea, se folosesc funcțiile
recursive.
 Autoapelul provoacă o nouă apelare a aceleiași funcții, ceea ce
presupune executia instrucțiunilor acesteia, începând cu prima
instrucțiune și până la autoapel, când se apelează din nou funcția.
Autoapelul funcției va fi condiționat de îndeplinirea unei condiții de
bază (de oprire). Dacă aceasta este îndeplinită, atunci funcția se
autoapelează, altfel funcția se întrerupe și se execută secvențele
rămase de executat în ordinea inversă apelării.
 Apelul unei funcții recursive presupune alocarea de memorie pe
stivă pentru: variabilele locale, parametrii funcției și adresa de
revenire pentru fiecare apel.
EXEMPLU
#Factorial
def fact(n):
if n!=0:
return n*fact(n-1)
else:
return 1
def main():
n = int(input("n="))
print(n, '!=', fact(n))
APLICATII
1. Scriți o funcție recursivă care primește ca parameru un
număr întreg n și returnează numărul de cifre ale lui n.
Scrieți o funcție recursivă care primește ca parameru un
număr întreg n și returnează produsul cifrelor
2. Scrieți o funcție recursivă care primește ca parametrii două
numere naturale a și b și returnează cel mai mare divizor
comun.
3. Scrieți o funcție recursivă care transformă un număr
natural n, din baza 10 în baza k (1<k<=10).
MODULE UTILIZATOR
 Modulul reprezintă o modalitate de a scrie definiții de
subprograme și de a le organiza într-un singur fișier Python.
Scopul creării modulelor utilizator este de a folosi funcțiile în alte
programe Python. Numele modulului este numele fișierului.
MODULE – UTILIZAREA FUNCTIILOR
Pentru a utiliza subprogramele definite în cadru modulelor utilizator este
necesară importarea acestora.
1. Se poate importa întregul modul, fapt ce permite apelarea oricărei funcții :
 import nume_modul
 from nume_modul import *
2. Se pot importa doar anumite funcții:
 from nume_modul import nume_functie, în acest caz nu pot fi folosite decât
funcțiile importate.

 Apelarea funcțiilor din module în cadrul programelor se poate realiza


astfel:
 nume_modul.nume_funcție(parametrii)
 nume_functie(parametrii)

 Python poate importa modulele dacă recunoaște calea unde acestea sunt
salvate. În mod implicit va căuta modulele în folderul curect și în cele
menționate în PYTHONPATH. Pentru mai multe informații puteți accesa
documentația Python (https://docs.python.org/3/tutorial/modules.html).
BIBLIOTECA STANDARD
 Python pune la dispoziția programatorilor o gamă largă de
facilități și module în biblioteca standard. Cea mai mare parte
a bibliotecii constă într-o colecție de module (math, cmath,
random, time, decimal, fractions, turtle, tkinter etc.) care
conțin funcții predefinite și constante (PI, e, tau , infinit,
none) ce pot fi utilizate în programe prin instrucțiunea de
import.
 Când instalăm Python pe platforma Windows se instalează,
de obicei, întreaga bibliotecă standard, precum și multe
componente suplimentare.
 Python pune la dispoziția programatorilor și un set de funcții
predefinite care pot fi utilizate în programe fără a importa
anumite module. Acestea pot fi consultate la adresa:
https://docs.python.org/3/library/functions.html.
UTILIZAREA MODULELOR DIN BIBLIOTECI
 Pentru a utiliza funcțiile definite în cadru modulelor din biblioteca
standard este necesară importarea acestora ca și în cazul modulelor
utilizator definite în capitolul 6.
1. Se poate importa întregul modul, fapt ce permite apelarea
oricărei funcții:
 import nume_modul
 from nume_modul import *

 2. Se pot importa doar anumite funcții:


 from nume_modul import nume_functie, în acest caz nu pot fi folosite
decât funcțiile importate.

 Apelarea funcțiilor din module în cadrul programelor se poate


realiza astfel:
 nume_modul.nume_funcție(parametrii)
 nume_functie(parametrii)
APLICATII
 Calculator aritmetic pentru operațiile: adunare, scădere,
înmulțire, împărțire, radical (sqrt), putere (pow), factorial
(factorial).
 Scrieti un program care afiseaza ziua curenta/luna
curenta/ ora curenta in diferite formate.
 Creati o lista si afisati la intamplare elemente din
lista folosind choice si randint(pentru indice).

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