0% au considerat acest document util (0 voturi)
3 vizualizări39 pagini

Python Modsol-Tie

Documentul oferă soluții pentru lucrările de examen la modulul de dezvoltare a aplicațiilor folosind Python, acoperind subiecte precum operatorii matematici, funcții pentru generarea numerelor prime și secvenței Fibonacci, gestionarea excepțiilor, și instrucțiunile de control al fluxului. De asemenea, sunt prezentate exemple de cod pentru fiecare subiect, inclusiv explicații despre variabilele locale și globale, operatorii de comparație și booleani, și utilizarea instrucțiunilor break și continue. În final, documentul discută despre funcțiile definite de utilizator și modul în care parametrii pot fi trecuți în acestea.

Tradus de

ScribdTranslations
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 PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
3 vizualizări39 pagini

Python Modsol-Tie

Documentul oferă soluții pentru lucrările de examen la modulul de dezvoltare a aplicațiilor folosind Python, acoperind subiecte precum operatorii matematici, funcții pentru generarea numerelor prime și secvenței Fibonacci, gestionarea excepțiilor, și instrucțiunile de control al fluxului. De asemenea, sunt prezentate exemple de cod pentru fiecare subiect, inclusiv explicații despre variabilele locale și globale, operatorii de comparație și booleani, și utilizarea instrucțiunilor break și continue. În final, documentul discută despre funcțiile definite de utilizator și modul în care parametrii pot fi trecuți în acestea.

Tradus de

ScribdTranslations
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 PDF, TXT sau citiți online pe Scribd

Dezvoltarea aplicaț iilor folosind Python 18CS55

Soluț ia lucrărilor de examen model


MODULUL 1
1 Explain the math operators in Python from highest to lowest Precedence with an example for each. Write 6
paș ii prin care Python evaluează expresia (5 - 1) * ((7 + 1) / (3 - 1)) ș i o reduce la un singur
valoare.

Operatorul este un simbol care spune compilatorului să efectueze o funcț ie matematică sau logică specifică.
În Python, o valoare singulară fără operatori este de asemenea considerată o expresie, deș i se evaluează
doar pentru sine.
Ordinea operaț iunilor (numită ș i precedenț ă) a operatorilor matematici Python este similară cu cea a
mathematics i.e., **, *, /, //, %, +, -
Asociativitatea este, de asemenea, similară ș i se urmează de la stânga la dreapta.

Paș ii pentru evaluarea expresiei în Python sunt următorii:

2 Definiț i o funcț ie Python cu parametrii adecvaț i pentru a genera numere prime între două întregi 8
valori. Scrieț i un program Python care acceptă două valori întregi m ș i n (notă: m>0, n>0 ș i m < n)
ca intrări ș i să treacă aceste valori funcț iei. Mesajele de eroare adecvate ar trebui să fie afiș ate dacă
condiț iile pentru valorile de intrare nu sunt respectate.

def prim(m, n):


pentru num în interval(m, n + 1):
dacă num > 1:
pentru i în intervalul(2, num):
dacă (num % i) == 0:
pauză
altfel:
printa(num)

Introduceț i intervalul de numere pentru a găsi numere prime


m = int(input())
n = int(input())
Prof. Suvika K V, Dept. of CSE, CBIT, Kolar 2020-21
1
Dezvoltarea aplicaț iilor folosind Python 18CS55

dacă m>0 ș i n>0 ș i m<n:


prim(m, n)
altfel:
Introduceț i valorile corecte

3 Explicaț i domeniul local ș i global în programele Python. Ce sunt variabilele locale ș i globale? Cum puteț i 6
forț ează o variabilă într-o funcț ie să facă referire la variabila globală?
Parametrii ș i variabilele care sunt atribuite într-o func ț ie apelată se spune că există în acea
scopul local al funcț iei.
Variabilele care sunt atribuite în afara tuturor funcț iilor se spune că există în domeniul global.
O variabilă care există într-un domeniu local se numeș te variabilă locală, în timp ce o variabilă care există în
domeniul global este numit variabilă globală.
Scopurile contează din mai multe motive:
1. Codul în domeniul global nu poate folosi nicio variabilă locală.
2. Cu toate acestea, un spa ț iu de nume local poate accesa variabile globale.
3. Codul din domeniul local al unei func ț ii nu poate folosi variabile din niciun alt domeniu local.
4. Putem folosi acela ș i nume pentru variabile diferite dacă se află în domenii diferite. Adică, există
poate exista o variabilă locală numită spam ș i o variabilă globală numită de asemenea spam.
Putem forț a o variabilă într-o funcț ie să facă referire la variabila globală folosind declaraț ia globală ca
afiș at mai jos:

Program Output

Pentru că ouăle sunt declarate globale în partea de sus a funcț iei spam()❶, când ouăle sunt setate pe 'spam'❷, asta
atributul este realizat pentru ouăle cu domeniu global. Nici o variabilă locală ouă nu este creată.

4 What are Comparison and Boolean operators? List all the Comparison and Boolean operators in Python 6
ș i explică utilizarea acestor operatori cu exemple adecvate.

Operatorii de comparaț ie: Aceș tia sunt utilizaț i pentru a compara două valori ș i a evalua la o singură
Valoare booleană.

Operatori Boolean: Cei trei operatori Boolean (ș i, sau, ș i nu) sunt utilizaț i pentru a compara Boolean
valori.

i. operatorul ș i: Operatorul ș i evaluează o expresie ca Adevărat dacă ambele valori boolean sunt
sunt Adevărate; altfel, evaluează la Fals.

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


2
Dezvoltarea aplicaț iilor folosind Python 18CS55

ii. operatorul or: Operatorul or evaluează o expresie ca fiind Adevărat dacă oricare dintre cele două valori Booleene
valorile sunt Adevărat. Dacă ambele sunt Fals, se evaluează ca Fals.

iii. operatorul not: Operatorul not func ț ionează pe un singur valori (sau expresii) booleană.
Operatorul not evaluează pur ș i simplu la valoarea Boolean opusă. La fel ca ș i folosirea dublă
negativelor în vorbire ș i scriere, poț i învârti operatorii de nereuș ită❶, deș i niciodată nu există
nu există niciun motiv pentru a face asta în programele reale.

5 Definiț i o funcț ie Python cu parametrii potriviț i pentru a genera primele N numere Fibonacci. Primele două 8
Numerele Fibonacci sunt 0 ș i 1, iar secvenț a Fibonacci este definită ca o funcț ie F, având Fn= Fn-1 + Fn-2.
Scrie un program Python care acceptă o valoare pentru N (unde N > 0) ca input ș i transmite această valoare la
Funcț ie. Afiș aț i un mesaj de eroare corespunzător dacă condiț ia pentru valoarea de intrare nu este respectată.

def fibonacci(n):
dacă n < 0:
input incorect
elif n == 1:
return 0
elif n == 2:
returnează 1
altfel:
returnează fibonacci(n-1) + fibonacci(n-2)

Introdu valoarea lui N


n = int(input())
dacă n>0:
x = fibonacci(n)
print(x)

Prof. Suvika K V, Dept. of CSE, CBIT, Kolar 2020-21


3
Dezvoltarea aplicaț iilor utilizând Python 18CS55

altfel:
Introduceti valorile corecte

6 Ce este gestionarea excepț iilor? Cum sunt gestionate excepț iile în Python? Scrie un program Python cu 6
cod de gestionare a excepț iilor pentru a rezolva situaț ia de eroare de împărț ire la zero.

Gestionarea excepț iilor: Dacă nu dorim să se blocheze programul din cauza erorilor, ci vrem ca
programul de detectare a erorilor, gestionarea acestora ș i continuarea execuț iei se numeș te gestionarea excepț iilor.
Excepț iile pot fi gestionate cu instrucț iuni try ș i except.
The code that could potentially have an error is put in a try clause. The program execution moves
to the start of a following except clause if an error happens.
Program:

def diviziune(m, n):


încearcă:
return m/n
exceptie ZeroDivisionError:
Eroare: situaț ie de împărț ire la zero

Introdu două numere


x = int(input())
y = int(input())
print(împărț ire(x,y))

În programul de mai sus, dacă al doilea număr dat de utilizator ca input este 0, atunci acesta prinde eroarea.
ș i declaraț ia de excepț ie va fi tipărită.
7 Scrie un program Python pentru a găsi aria pătratului, dreptunghiului ș i cercului. Afiș ează rezultatele. Primeș te input. 6
de la utilizator.

side = float(input('Enter side of square'))


sarea = side * side
print("Suprafaț a pătratelui este ",sarea)

length = float(input('Enter length of rectangle'))


breadth = float(input('Enter breadth of rectangle'))
rarea = length*breadth
print("Suprafaț a cercului este ",rarea)

raza = float(input('Introduceț i raza cercului'))


carea = 2*3.14*radius
print("Aria cercului este ",carea)

8 Listaț i ș i explicaț i sintaxa tuturor instrucț iunilor de control al fluxului cu exemple. 8

There are four types of flow control statements:


[Link]ă instruc ț iune
2. Instruc ț iunea else
[Link] elif

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


4
Dezvoltarea aplicaț iilor folosind Python 18CS55

1. instruc ț iuni if:

Ocluzia unei instruc ț iuni if (adică blocul care urmează instruc ț iunii if) se va executa dacă
condiț ia afirmaț iei este adevărată. Clauza este sărită dacă condiț ia este falsă.
În limbaj simplu, o instrucț iune if ar putea fi citită ca, „Dacă această condiț ie este adevărată, execută codul în
clauză.
În Python, o instrucț iune if constă din următoarele:
1. Cuvântul cheie if
2. O condi ț ie (adică o expresie care evaluează la Adevărat sau Fals)
3. Un două puncte

4. Începând de pe următoarea linie, un bloc de cod indentat (numit clauza if)


Exemplu:

Diagrama de flux:

2. declara ț ii else:

O clauză if poate fi urmată opț ional de o declaraț ie else. Clauza else este executată doar
când condiț ia declaraț iei if este falsă.
În engleză simplă, o instrucț iune else ar putea fi citită ca, „Dacă această condiț ie este adevărată, execută acest cod.
Altfel, execută acel cod.
O instrucț iune else nu are o condiț ie, iar în cod, o instrucț iune else constă întotdeauna din
urmând:
1. Cuvântul cheie else
2. Un dosar
3. Începând de pe următoarea linie, un bloc de cod indentat (numit clauza else)
Exemplu:

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


5
Dezvoltarea aplicaț iilor folosind Python 18CS55

Diagramă de flux:

3. instruc ț iuni elif:

Dacă avem mai mult de o condiț ie, atunci se foloseș te declaraț ia elif.
Declaraț ia elif este o declaraț ie „altfel dacă” care urmează întotdeauna unei declaraț ii if sau alte declaraț ii elif.
Oferă o altă condiț ie care este verificată doar dacă toate condiț iile anterioare au fost False.
În cod, o declaraț ie elif constă întotdeauna din următoarele:
Cuvântul cheie elif
2. O condi ț ie (adică o expresie care evaluează la Adevărat sau Fals)
3. Un doisprezece

4. Începând de la următoarea linie, un bloc de cod indentat (numit clauza elif)

Diagramă de flux:

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


6
Dezvoltarea aplicaț iilor folosind Python 18CS55

Exemplu:

9 Ilustrează utilizarea instrucț iunilor break ș i continue cu un fragment de cod. 6

Declaraț ia break

Declaraț ia break este folosită pentru a ieș i imediat din buclă.


O declaraț ie break conț ine pur ș i simplu cuvântul cheie break.

Prima linie❶ creează o buclă infinită; este o buclă while al cărei condiț ie este întotdeauna Adevărat.
Execuț ia programului va intra întotdeauna în buclă ș i va ieș i din ea doar când există o instrucț iune break.
executat.
Programul îi cere utilizatorului să tasteze numele❷.
În timp ce execuț ia este încă în interiorul buclei while, o instrucț iune if este executată.❸ a verifica
dacă numele este egal cu numele introdus.
Dacă această condiț ie este adevărată, instrucț iunea break este executată❹, iar execuț ia iese din buclă
print('Mulț umesc!')❺.

Declaraț ia continue

Declaraț ia continue este folosită pentru a sări imediat înapoi la începutul buclei ș i a reevalua
condiț ia buclei.
O declaraț ie continue conț ine pur ș i simplu cuvântul cheie continue.

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


7
Dezvoltarea aplicaț iilor folosind Python 18CS55

Dacă utilizatorul introduce orice nume în afară de Joe❶,


declara ț ia continue❷ cauzează programul
execuț ia pentru a sări înapoi la începutul buclei.
Când reevaluează condiț ia, execuț ia va intra întotdeauna în bucle, deoarece condiț ia este
pur ș i simplu valoarea Adevărat. Odată ce trec de acea instrucț iune if, utilizatorul este întrebat pentru o parolă
❸.
Dacă parola introdusă este swordfish, atunci instrucț iunea break❹ este în execuț ie, iar execuț ia sare
ieș iț i din bucla while pentru a afiș a Acces permis❺.

10 Ce sunt funcț iile definite de utilizator? Cum putem trece parametrii în funcț iile definite de utilizator? Explicaț i cu 7
exemplu potrivit.

Funcț iile definite de utilizator sunt mini-programele scrise de utilizator pentru a efectua o sarcină specifică.
Funcț iile încep întotdeauna cu cuvântul cheie „def”.
Putem trece parametrii funcț iilor definite de utilizator, aș a cum se arată mai jos:

Definiț ia funcț iei hello() în acest program are un parametru numit name❶.
Un parametru este o variabilă în care un argument este stocat atunci când o funcț ie este apelată. Prima dată
funcț ia hello() este apelată, cu argumentul 'Alice'❸.
Execuț ia programului intră în funcț ie, iar variabila nume este setată automat la 'Alice',
ceea ce este tipărit de instrucț iunea print()❷.

11 Explicaț ă declaraț ia globală cu un exemplu. 8

Dacă trebuie să modificăm o variabilă globală dintr-o funcț ie, folosim declaraț ia global.
Dacă avem o linie precum global eggs în vârful unei func ț ii, aceasta îi spune lui Python: „În această
funcț ia, ouăle se referă la variabila globală, aș a că nu crea o variabilă locală cu acest nume.
De exemplu:

Program Ieș ire

Pentru că ouăle sunt declarate globale la începutul funcț iei spam()❶, când ouăle sunt setate pe 'spam'❷, acesta
atribuit este realizat pentru ouăle cu domeniu global. Nici o variabilă locală de ouă nu este creată.
Există patru reguli pentru a spune dacă o variabilă se află în un domeniu local sau global:
1. Dacă o variabilă este folosită în domeniul global (adică, în afara tuturor func ț iilor), atunci este întotdeauna
o variabilă globală.
2. Dacă există o declara ț ie globală pentru acea variabilă într-o func ț ie, este o variabilă globală.

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


8
Dezvoltarea aplicaț iilor folosind Python 18CS55

3. În caz contrar, dacă variabila este utilizată într-o instruc ț iune de atribuire în func ț ie, este una locală
variabilă.
4. Dar dacă variabila nu este utilizată într-o instruc ț iune de asignare, este o variabilă globală.

12 Scrie o func ț ie care calculează ș i returnează adunarea, scăderea, înmul ț irea, împăr ț irea a două 5
întregi. Ia date de la utilizator.

def calc(x, y):


returnează x+y, x-y, x*y, x/y

introduceț i două numere


x = int(input())
y = int(input())
add, sub, mul, div = calc(x, y)
tipăreș te("Suma este", adaugă)
print("Diferenț a este", sub)
printează("Produsul este", mul)
print("Cotele este", div)

MODULE 2
1 Ce este un dic ț ionar în Python? Cum este diferit de tipul de date List? 6
Explica ț i cum func ț ionează un ciclu for.
poate fi utilizat pentru a parcurge cheile dicț ionarului cu un exemplu.

Dicț ionar: Un dicț ionar este o colecț ie de multe valori. Indicele pentru dicț ionare poate utiliza multe
tipuri diferite de date, nu doar întregi. Indicii pentru dicț ionare se numesc chei, iar o cheie cu atribuirea sa
valoarea asociată se numeș te pereche cheie-valoare. Un dicț ionar este tipărit cu acolade, {}.

Dicț ionarul este diferit de tipul de date listă:


În liste, elementele sunt ordonate, iar în dicț ionare, elementele sunt neordonate.
Primul element dintr-o listă există. Dar nu există un element „prim” într-un dicț ionar.
Ordinea elementelor contează pentru a determina dacă două liste sunt identice, nu contează în
în ce ordine sunt introduse perechile cheie-valoare într-un dicț ionar.

Încercarea de a accesa o cheie care nu există într-un dicț ionar va rezulta într-un mesaj de eroare KeyError,
în listă "index în afara intervalului" mesaj de eroare IndexError.

Parcurgere folosind un ciclu for:

2 Explicaț i metodele tipului de date List în Python pentru următoarele operaț ii cu cod adecvat 8
fragmente pentru fiecare.
(i) Adăugarea valorilor într-o listă ii) Eliminarea valorilor dintr-o listă
(iii) Găsirea unei valori într-o listă iv) Sortarea valorilor dintr-o listă

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


9
Dezvoltarea aplicaț iilor folosind Python 18CS55

i) Adăugarea valorilor într-o listă:

Pentru a adăuga valori noi într-o listă, se pot folosi metodele append() ș i insert().
Metoda append() adaugă argumentul la sfârș itul listei.

The insert() method insert a value at any index in the list.


Primul argument pentru insert() este indicele pentru noua valoare, iar al doilea argument este noua
valoarea care trebuie inserată.

ii) Îndepărtarea valorilor dintr-o listă:

Pentru a elimina valori dintr-o listă, pot fi folosite metodele remove() ș i del().
Declaraț ia del este utilizată atunci când ș tim indexul valorii pe care dorim să o eliminăm din listă.
Metoda remove() este folosită atunci când ș tim valoarea pe care dorim să o eliminăm din listă.

Încercarea de a ș terge o valoare care nu există în listă va rezulta într-o eroare ValueError.
Dacă valoarea apare de mai multe ori în listă, doar prima instanț ă a valorii va fi eliminată.

iii) Găsirea unei valori într-o listă:

Pentru a găsi o valoare într-o listă, putem folosi valoarea indexului.

Primul valoare din listă este la indexul 0, al doilea valoare este la indexul 1, iar al treilea valoare este la
index 2, ș i aș a mai departe. Indicii negative pot fi folosiț i de asemenea.

Exemplu:

Prof. Suvika K V, Dept. of CSE, CBIT, Kolar 2020-21


10
Dezvoltarea aplicaț iilor folosind Python 18CS55

Expresia 'Salut ' + spam[0] evaluează la 'Salut ' + 'pisică' deoarece spam[0] evaluează la
ș irul 'pisică'. Această expresie, la rândul ei, evaluează la valoarea ș irului 'Salut pisică'.
Index negativ spam[-1] Recuperează ultima valoare.

iv) Sortarea valorilor dintr-o listă

Listele de valori numerice sau listele de ș iruri pot fi sortate cu metoda sort().

Scrie un program Python care acceptă o propozi ț ie ș i găse ș te numărul de 6


cuvinte, cifre, litere mari
litere ș i litere mici.

def Contor(str):
up, low, num, special = 0, 0, 0, 0
pentru i în intervalul (len(str)):
dacă str[i] >= 'A' ș i str[i] <= 'Z':
up += 1
elif str[i] >= 'a' si str[i] <= 'z':
low += 1
elif str[i] >= '0' ș i str[i] <= '9':
num += 1
altfel:
special += 1
print("LETTERS :",up+low,"DIGITS :",num,"UPPERCASE :",up,"LOWERCASE :",low)
introduceț i o propoziț ie
str = input()
Count(str)

4 Care este diferen ț a dintre func ț iile [Link]() ș i [Link]() care se 6


aplică unei liste
sau Dicț ionar în Python? Oferiț i exemple potrivite pentru fiecare.

Modulul de copiere trebuie importat ș i poate fi folosit pentru a crea o copie duplicată a unei valori mutabile cum ar fi un
listă sau dicț ionar, nu doar o copie a unei referinț e.

[Link]( ): O copie superficială creează un nou obiect care stochează referin ț a originalului.
elemente. Aș adar, o copie superficială nu creează o copie a obiectelor înn nestate, ci doar copiază referinț a
al obiectelor imbricate. Aceasta înseamnă că un proces de copiere nu creează copii ale obiectelor imbricate în sine.

Example:

importaț i copie
old_list = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
new_list = [Link](old_list)
Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21
11
Dezvoltarea aplicaț iilor folosind Python 18CS55

old_list[1][1] = 'AA'
print("Lista veche:", lista_veche)
print("Listă nouă:", new_list)

Ieşire:

Old list: [[1, 1, 1], [2, 'AA', 2], [3, 3, 3]]


New list: [[1, 1, 1], [2, 'AA', 2], [3, 3, 3]]

[Link]( ): O copiere profundă creează un nou obiect ș i adaugă în mod recursiv copiii obiectelor imbricate.
prezent în elementele originale.

Exemplu:

importaț i copie
old_list = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
new_list = [Link](old_list)
old_list[1][0] = 'BB'
print("Listă veche:", old_list)
print("Listă nouă:", new_list)

Output:

Old list: [[1, 1, 1], ['BB', 2, 2], [3, 3, 3]]


Lista nouă: [[1, 1, 1], [2, 2, 2], [3, 3, 3]]

5 Discutaț i următoarele metode ale dicț ionarului în Python cu exemple. 8


(i) obț ine() (ii) itemi() (iii) chei() (iv) valori()

(i) get( ): Dicț ionarele au o metodă get() care acceptă două argumente:
Cheia valorii de recuperat
O valoare de rezervă care să fie returnată dacă acel cheie nu există.

(ii) elemente( ): Această metodă returnează valorile ș i cheile dic ț ionarului sub formă de tupluri.
Ex:spam = {‘color’ : ‘red’ , ‘age’ : 27}
pentru i în [Link]():
print(i)
Output: (‘color’, ‘red’)
(‘age’, 27)

(iii) keys( ): Această metodă returnează cheile dic ț ionarului.


Ex:spam = {‘color’ : ‘red’ , ‘age’ : 27}
pentru i în [Link]( ):
print(i)
Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21
12
Dezvoltarea aplicaț iilor folosind Python 18CS55

Ieș ire: culoare


vârstă

iv) valori( ): Această metodă returnează valorile dicț ionarului.


Ex:spam = {‘color’ : ‘red’ , ‘age’ : 27}
pentru i în [Link]( ):
print(i)
Ieș ire: roș u
27
6 Explicaț i diferitele metode de ș iruri pentru următoarele operaț iuni cu exemple. 6
Eliminarea caracterelor de spa ț iu de la început, sfâr ș it sau de pe ambele păr ț i ale unui ș ir.
(ii) Pentru a alinia o strigare la dreapta, la stânga ș i la centru.

i) Eliminarea caracterelor de spa ț iu de la început, sfâr ș it sau de pe ambele păr ț i ale unui ș ir.

Metoda de ș ir strip() va returna un nou ș ir fără caractere de spa ț iu la


început sau sfârș it.
Metodele lstrip() ș i rstrip() vor elimina caracterelor de spaț iu de pe părț ile stânga ș i dreapta,
respectiv.

ii) Pentru a justifica la dreapta, la stânga ș i a centra un ș ir.

Metodele de ș ir rjust() ș i ljust() returnează o versiune umplută a ș irului pe care sunt apelate, cu
spaț ii inserate pentru a justifica textul.
Primul argument pentru ambele metode este o lungime întreagă pentru ș irul justificat.

An optionalsecondargument to rjust() and ljust() will specify a fill character other than a space
personaj.

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


13
Dezvoltarea aplicaț iilor folosind Python 18CS55

Metoda de ș ir center() funcț ionează la fel ca ljust() ș i rjust() dar centrează textul în loc să-l justifice.
la stânga sau la dreapta.

7 Ce este o listă? Explica ț i conceptul de tăiere a listei cu un exemplu. 6

Lista: O listă este o valoare care conț ine multiple valori într-o succesiune ordonată.

Împărț ire: Extracț ia unui subș ir dintr-un ș ir se numeș te subș ir.


Exemplu:

8 Explica ț i referin ț ele cu un exemplu. 7

Referinț ă: O referinț ă este o valoare care indică o anumită bucată de date, iar o referinț ă la o listă este o valoare
care indică o listă.

Iată lista este creat ș i i se atribuie o referinț ă în variabila spam.

În următoarea linie, se copiază doar referinț a listei din spam în brânză, nu valoarea listei în sine. Asta înseamnă
valorile stocate în spam ș i brânză se referă acum la aceeaș i listă.

Când o funcț ie este apelată, valorile argumentelor sunt copiate în variabilele parametrilor.

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


14
Dezvoltarea aplicaț iilor folosind Python 18CS55

când eggs() este apelat, o valoare de returnare nu este folosită pentru a atribui o nouă valoare lui spam.

Chiar dacă spam ș i someParameter conț in referinț e separate, ambele se referă la acelaș i.
listă.
De aceea apelul metodei append('Hello') din interiorul funcț iei afectează lista chiar ș i după aceea
apelul funcț iei a returnat.

9 Ce este un dic ț ionar? Cum se diferen ț iază de o listă? Scrie un program 7


pentru a număra numărul de
aparitii ale caracterului intr-un sir.

import pprint
x = input("Enter a String")
count = {}

pentru caracter în x:
[Link](character, 0)
count[caracter] = count[caracter] + 1

[Link](count)

10 Creezi un joc video fantasy. Structura de date pentru a modela inventarul 7 jucătorului
va fi un dicț ionar unde cheile sunt valori de tip string care descriu obiectul din inventar ș i
valoarea este o valoare întreagă care detaliază câte din acel obiect are jucătorul. De exemplu,
dictionary value {'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12} means the
jucătorul are 1 frânghie, 6 tor ț e, 42 monede de aur ș i a ș a mai departe. Scrie o func ț ie numită
displayInventory() that would take any possible “inventory” and display it like the following:
Inventory:
12 săgeț i
42 monede de aur
1 rope
6 torț e
1 cuț it
Numărul total de articole: 63

stuff = {'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12}


def afiseazaInventarul(inventar):
Inventar:
item_total = 0
pentru k, v în [Link]():
item_total = item_total + v
print(str([Link](k, 0)) + ' ' + k)
Totalul articolelor:
afiseazaInventar(stuff)

11 List any six methods associated with string and explain each of them with example. 8

i) upper( ): Această metodă este utilizată pentru a transforma caracterele cu litere mici în caractere cu litere mari.
Ex:x = ‘Python’
x = [Link]()
PYTHON

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


15
Dezvoltarea aplicaț iilor folosind Python 18CS55

ii) lower( ):Această metodă este folosită pentru a transforma caracterele mari în caractere mici.
Ex:x = 'Python'
x = [Link]( )
python

iii) isupper( ): Această metodă este utilizată pentru a verifica dacă un ș ir are cel puț in o literă sau complet
ș irul este majuscul sau nu. Returnează o valoare booleană.
Ex:x = 'Python'
x = x.este_mare()
VERITATE
Ex:y = ‘ python’
y = [Link]()
FALS

iv) islower( ):Această metodă este folosită pentru a verifica dacă un ș ir are cel puț in o literă sau complet
ș irul este mic sau nu. Aceasta returnează o valoare Boolean.
Ex:x = 'Python'
x = [Link]( )
ADEVARAT
y = 'PYTHON'
y = [Link]()
FALS

v) isspace( ): Returnează adevărat dacă ș irul constă doar din spaț ii, taburi ș i linii noi ș i nu este
blank.
Ex:‘ ‘.isspace( )
ADEVĂRAT
vi) isalnum( ): Returnează True dacă ș irul constă doar din litere ș i cifre ș i nu este gol.
Ex:‘hello123’.isalnum( )
ADEVĂRAT
Ex:‘ ‘.isalnum( )
FALS

12 Scrie ț i un program Python pentru a schimba majusculele ș i minusculele într-un ș ir dat. 5


Java
jAVA

Soluț ia 1: Folosind funcț ia încorporată

introduceț i un ș ir
ș ir = input()
print([Link]())

Soluț ia 2: Fără a folosi funcț ii încorporate

def schimbare_caz(string):
result_str = ""
pentru element în ș ir:
dacă item.este_mare():

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


16
Dezvoltarea aplicaț iilor folosind Python 18CS55

result_str += [Link]()
altfel:
result_str += [Link]()
returnează result_str
string = input("Enter a String")
print(swapcase(string))

MODULE 3
1 Scrie ț i un program Python pentru a găsi un număr de telefon american (exemplu: 6
415-555-4242) într-un dat
ș ir folosind expresii regulate.

importa re
Introduceti un sir
x = input()
phoneRegex = [Link](r'\d\d\d-\d\d\d-\d\d\d\d')
[Link](x)

2 Descrie diferenț a dintre modulele Python os ș i [Link]. De asemenea, discută despre următoarele 7
metodele modulului os
a) chdir() b) rmdir() c) walk() d) listdir() e) getcwd()

modul os Este din biblioteca standard ș i oferă o modalitate portabilă de a accesa ș i utiliza
funcț ionalitate dependentă de sistemul de operare.

modulul [Link] Este folosit pentru a manipula fiș ierele ș i directoarele căilor ș i numelui căii.

a) chdir( ) Această metodă este folosită pentru a schimba directorul de lucru curent la cel necesar.
director.

Ex: importaț i os
[Link]("C:\Windows\System")

b) rmdir( ) Această metodă este folosită pentru a ș terge folderul de la calea specificată. Acest folder nu trebuie să conț ină nimic.
fiș iere sau foldere.

c) mers() Această metodă este folosită pentru a accesa sau a efectua orice operaț iune asupra fiecărui fiș ier dintr-un folder.

Ex: importaț i os
pentru numele_folder, subfolder, nume_fisiere în [Link]("C:\Windows\System")
print(„Folderul curent este „+foldername)

d) listdir( ) Această metodă returnează o listă care conț ine numele intrărilor din director
dat de cale.

e) getcwd( ) Această metodă este folosită pentru a obț ine directorul de lucru curent.

Ex: importaț i os
[Link]()

3 Demonstra ț i func ț iile de copiere, mutare, redenumire ș i ș tergere ale modulului 7


shutil cu cod Python
fragment.

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


17
Dezvoltarea aplicaț iilor folosind Python 18CS55

Copy:[Link](sursa, destinatie) va copia fiș ierul de la calea sursă la calea destinaț ie.

În exemplul de mai sus:


1 Destinaț ia este un dosar, prin urmare, fiș ierul sursă este copiat în fiș ierul de destinaț ie.
2 Destination is a folder with a filename, hence the source file copied will be renamed to the
numele fiș ierului.

Mutare: [Link](sursa, destinaț ie) va muta fiș ierul sau folderul din calea sursă în destinaț ie
calea ș i va returna un ș ir al căii absolute a noului locaș .

[Link](sursa, destinatia) poate fi folosit pentru a muta si redenumi de asemenea.

Ș terge: Putem ș terge un singur fiș ier sau un singur folder gol cu funcț ii din modulul os, în timp ce
pentru a ș terge un dosar ș i tot conț inutul său, folosim modulul shutil.
1. Apelarea [Link](path) va ș terge fi ș ierul de la calea specificată.
2. Apelarea [Link](path) va ș terge folderul de la calea specificată. Acest folder trebuie să fie gol de orice fi ș iere sau
dosare.
3. Apelarea [Link](path) va elimina folderul de la path ș i toate fi ș ierele ș i folderele pe care le con ț ine
va fi de asemenea ș ters.

Ex: importaț i os
pentru nume_fisier în [Link]() :
dacă numele fiș ierului se termină cu '.txt':

[Link](numele_fisierului)

4 Descrie următoarele cu un fragment de cod Python potrivit. 7


["(i) Potrivirea de model lacomă ș i nelacomă","(ii) metoda findall() a obiectului Regex."]

(i) Potrivirea de modele lacomă ș i nelacomă:

Potrivirea avidă a modelului înseamnă potrivirea cu cel mai lung ș ir posibil. În mod implicit, în python
se urmează potrivirea lacomă.
Ex:

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


18
Dezvoltarea aplicaț iilor folosind Python 18CS55

Potrivirea de tip non-greedy înseamnă potrivirea cu cea mai scurtă posibilă ș ir. Ar trebui să fie
reprezentat explicit folosind un semn de întrebare după acolade.
Ex:

(ii) metoda findall() a obiectului Regex.

metoda search() va returna un obiect Match al primului text găsit în ș irul căutat.
metoda findall() va returna ș irurile fiecărei potriviri în ș irul căutat sub formă de listă de
ș iruri—atâta timp cât nu există grupuri în expresia regulată.
Ex:

5 Explica ț i procesul de citire/scriere a fi ș ierelor cu un program Python adecvat. 6

Citirea fiș ierului: metodele read( ) ș i readlines( ) sunt utilizate pentru a citi conț inutul unui fiș ier. metoda read( )
citeș te conț inutul unui fiș ier ca o singură valoare de tip ș ir, în timp ce metoda readlines() citeș te fiecare linie ca o
valoare de tip string.

Ex:

Scriere fiș ier: Fiș ierul trebuie deschis pentru a scrie conț inutul într-un fiș ier. Acest lucru se poate face în două
moduri: fie în modul de scriere, fie în modul de adăugare. În modul de scriere, conț inutul fiș ierului existent va fi
supra-scriere în timp ce în modul de ataș are conț inutul va fi adăugat la sfârș itul fiș ierului existent.

Ex: În exemplul de mai jos, fiș ierul [Link] este deschis în modul de scriere, prin urmare, toate conț inuturile vor fi
ș ters ș i Salut lume! Va fi scris.

Ex:În exemplul de mai jos, fiș ierul [Link] este deschis în modul de adăugare, prin urmare, conț inutul va fi adăugat.
salut lume!

Fiș ierele trebuie închise după ce au fost citite sau scrise.

6 Definează aser ț iunile. Din ce este formată o afirma ț ie assert în Python? Explică cum 7 func ț ionează aser ț iunile
poate fi folosit în simularea semafoarelor cu snippet de cod Python.

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


19
Dezvoltarea aplicaț iilor folosind Python 18CS55

O afirmaț ie: O afirmaț ie este un control de sănătate pentru a ne asigura că codul nu face ceva evident.
greș it.
Dacă verificarea sănătăț ii eș uează, atunci este ridicată o excepț ie AssertionError.
În Python, o instrucț iune assert constă din următoarele:
Cuvântul cheie assert
2. O condi ț ie (adică o expresie care evaluează la Adevărat sau Fals)
3. O virgulă
4. Un ș ir de caractere de afiș at atunci când condiț ia este Falsă
În engleză simplă, semnificaț ia unei afirmaț ii assert este: "Afirm că această condiț ie este adevărată, iar dacă nu,
există un bug undeva în program.

Simularea semaforului: Structura de date care reprezintă semafoarele la o intersecț ie este o


dictionary with keys 'ns' and 'ew', for the stoplights facing north-south and east-west, respectively.
Valorile la aceste chei vor fi una dintre ș irurile 'verde', 'galben' sau 'roș u'.

Aceste două variabile vor fi pentru intersecț iile dintre Market Street ș i 2nd Street, ș i Mission
Strada ș i Strada 16. Funcț ia switchLights() va primi un dicț ionar de intersecț ii ca un
argument ș i aprinde lumina.

Dar, în timp ce scriem switchLights(), adăugăm o afirmaț ie pentru a verifica că cel puț in una dintre lumini este
întotdeauna roș u.

Dacă nici o direcț ie de trafic nu are un semafor roș u, atunci apare o eroare de aserț iune.
7 Lista ț i ș i explica ț i codul prescurtat pentru clasele de caractere comune. Ilustra7ț i cum defini ț
clasa ta de caracter?

Clasele de caractere sunt folosite pentru a scurta expresiile regulate. Următoarele sunt câteva dintre prescurtările
cod pentru clase de caractere comune:

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


20
Dezvoltarea aplicaț iilor folosind Python 18CS55

Definirea propriei clase de caractere: Propria clasă de caractere poate fi definită folosind paranteze pătrate [ ] ș i
condiț iile necesare pot fi date. Clasa de caractere negative poate fi de asemenea definită folosind simbolul
^.

Ex:
[0-5] Vor potrivi numerele de la 0 la 5
[0-5.] Va potrivi numărul de la 0 la 5 ș i un punct
[a-zA-Z] Va potrivi toate literele mari ș i mici.
[^a-zA-Z] Se va potrivi cu toate caracterele, cu excepț ia literelor mari ș i mici.

8 Explica ț i utilizarea caracterelor Caron ș i semn de dolar în expresiile regulate. 6

Simbolul caret (^) la începutul unui regex este folosit pentru a indica faptul că o potrivire trebuie să aibă loc în
începutul textului căutat.
Semnul dolarului ($) de la sfârș itul regex-ului este folosit pentru a indica că o potrivire trebuie să apară la sfârș itul
textul căutat.
Ambele simboluri pot fi folosite ^ ș i $ împreună pentru a indica că întreaga sir trebuie să se potrivească cu
regex.
Verifică dacă ș irul începe cu Hello.
x = [Link](r'^Hello')
[Link]ă('Salut lume!')

Verifică dacă ș irul se termină cu Hello.


x = [Link](r’Bună$’)
[Link]ă('Salut lume!')

Verifică dacă ș irul începe ș i se termină cu Hello.


x = [Link](r'^Hello$')
x.căutare('Bună Bună')

Scrie un program Python pentru a extrage numere de telefon ș i adrese de email 7


folosind regex.

import pyperclip, re

phoneRegex = [Link](r'''(
(\d{3}|\(\d{3}\))? # cod de domeniu
( 3|-|.)? # separator
(\d{3}) primele 3 cifre
(\s|-|\.) # separator
(\d{4}) ultimele 4 cifre
(\s*(ext|x|ext.)\s*(\d{2,5}))? # extensie
)''', [Link])

# Creează regex pentru email.


emailRegex = [Link](r'''(
[a-zA-Z0-9._%+-]+ # nume utilizator
@ # @ symbol
[a-zA-Z0-9.-]+ numele de domeniu

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


21
Dezvoltarea aplicaț iilor folosind Python 18CS55

(\.[a-zA-Z]{2,4}){1,2} # punct-ceva
)'''

Găseș te meciuri în textul din clipboard.


text = str([Link]())

matches = []
pentru grupuri în [Link](text):
phoneNum = '-'.join([groups[1], groups[3], groups[5]])
dacă grupuri[8] != '' :
phoneNum += ' x' + groups[8]
[Link](phoneNum)
pentru grupuri în [Link](text):
[Link](groups[0])

Copiaț i rezultatele în clipboard.


dacă len(matches) > 0:
[Link]('\n'.join(matches))
Copiat în clipboard:
print('\n'.join(matches))
altfel:
Nu s-au găsit numere de telefon sau adrese de email.

10 Cum specificăm ș i gestionăm căile absolute ș i relative? 10

Există două modalităț i de a specifica un parcurs de fiș ier.


1. O cale absolută, care începe întotdeauna cu dosarul rădăcină
2. O cale relativă, care este relativă la directorul de lucru curent al programului
Modulul [Link] oferă funcț ii pentru returnarea căii absolute a unei căi relative ș i pentru
verificarea dacă o cale dată este o cale absolută.
1. Apelarea [Link](path) va returna un ș ir al căii absolute a argumentului. Acesta este
o modalitate uș oară de a converti un drum relativ într-unul absolut.
2. Apelarea [Link](path) va returna True dacă argumentul este un drum absolut ș i False dacă este
este o cale relativă.
3. Apelarea [Link](path, start) va returna un ș ir de caractere cu un path relativ de la calea de start
la cale. Dacă start-ul nu este furnizat, directorul de lucru curent este folosit ca cale de start.

o
Deoarece C:\Python34 a fost directorul de lucru atunci când [Link]() a fost apelat, "punctul unic"
folderul reprezintă calea absolută 'C:\Python34'.

Prof. Suvika K V, Dept. of CSE, CBIT, Kolar 2020-21


22
Dezvoltarea aplicaț iilor folosind Python 18CS55

Apelarea [Link](path) va returna un ș ir cu tot ce vine înainte de ultima bară oblică în


argumentul calea.
Apelez [Link](path) va returna un ș ir de caractere cu tot ce vine după ultima bară oblică în
argumentul căii.

Exemplu:

11 Explica salvarea variabilelor folosind modulul shelve. 4

Variabilele pot fi salvate în programele Python în fiș iere de tip shelf binar folosind modulul shelve.
Aceasta ajută programul să restabilească datele în variabile din hard disk.
Modulul shelve ne va permite să adăugăm funcț ii de Salvare ș i Deschidere în programul dvs.
Exemplu:

12 Cu un exemplu de cod, explică citirea, extragerea ș i crearea fiș ierelor ZIP. 6

Citirea fiș ierelor ZIP:

Pentru a citi conț inutul unui fiș ier ZIP, trebuie creat un obiect ZipFile.
Obiectele ZipFile sunt valori prin care programul interacț ionează cu fiș ierul.
Pentru a crea un obiect ZipFile, se apelează funcț ia [Link](), trecându-i un ș ir de caractere de
numele fiș ierului .zip

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


23
Dezvoltarea aplicaț iilor folosind Python 18CS55

Creating ZIP Files:

Pentru a crea propriile noastre fi ș iere ZIP comprimate, trebuie să deschidem obiectul ZipFile în modul de scriere.
trecând 'w' ca al doilea argument.
Primul argument al metodei write() este un ș ir de caractere care reprezintă numele fiș ierului de adăugat.
Al doilea argument este parametrul tipului de compresie, care spune computerului ce algoritm
ar trebui să folosească pentru a comprima fiș ierele; putem seta întotdeauna această valoare la zipfile.ZIP_DEFLATED

Extracț ia fiș ierelor ZIP:

Metoda extractall() pentru obiectele ZipFile extrage toate fiș ierele ș i folderele dintr-un fiș ier ZIP în
directorul de lucru curent.
După ce aț i rulat codul de mai jos, conț inutul [Link] va fi extras în C:\.

Metoda extract() pentru obiectele ZipFile va extrage un singur fiș ier din arhiva ZIP.

MODULUL 4
1 Definiț i clase ș i obiecte în Python. Creaț i o clasă numită Employee ș i iniț ializaț i-o cu 8
ID-ul angajatului ș i numele. Proiectaț i metode pentru:
i) setAge_ pentru a asigna vârsta angajatului.
ii) setSalary_pentru a atribui salariul angajatului.
iii) Afiș aț i pentru a afisa toate informaț iile angajatului.

clasă student( ):

def _init_(self, nume, rol):


[Link] = name
[Link] = roll

def afiș a(self):


print([Link])
print([Link])

Prof. Suvika K V, Dept. of CSE, CBIT, Kolar 2020-21


24
Dezvoltarea aplicaț iilor folosind Python 18CS55

def setVarsta(self, varsta):


[Link] = age

def seteazăNote(self, note):


[Link] = marks

2 Ilustraț i conceptul de modificator cu cod Python. 5

Modificatori: Acesta modifică obiectele transmise ca argumente ș i are efect.

Ex: În exemplul de mai jos, obiectul start a fost trecut ca parametru ș i a fost schimbat de
adăugând secunde la acesta. Prin urmare, este un modifier.

3 Explicaț i metoda __init__ ș i __str__ cu un exemplu de program Python. 7

__init__:The init method (short for “initialization”) is a special method that gets invoked when an
obiectul este instanț iat. Parametrii lui __init__ trebuie să aibă aceleaș i denumiri ca ș i atributele.

Ex:

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


25
Dezvoltarea aplicaț iilor utilizând Python 18CS55

Dacă func ț ia este apelată fără, Dacă func ț ia este apelată cu una, Dacă func ț ia este apelată cu două
argumente apoi, argumente cu valori implicite apoi, suprascrie argumente apoi, suprascrie
va fi imprimat. ora. ora, minute.
>>> timp = Timp() >>> time = Time (9) >>> time = Time(9, 45)
>>> time.print_time() >>> time.print_time() >>> time.print_time()
00:00:00 09:00:00 09:45:00

Dacă funcț ia este apelată cu trei argumente, atunci toate valorile vor fi suprascrise.

__str__:It is a special method which returns a string representation of an object.

Ex:

Când tipărim un obiect, Python invocă metoda str:

4 Ce este polimorfismul? Demonstraț i polimorfismul cu o funcț ie pentru a găsi histograma pentru a număra. 7
numărul de ori în care apare fiecare literă într-un cuvânt ș i într-o propoziț ie.

Polimorfism: Funcț iile care lucrează cu mai multe tipuri sunt numite polimorfe. Polimorfismul poate
facilitează reutilizarea codului.

Ex:
Această funcț ie funcț ionează ș i pentru liste, tupluri ș i
chiar ș i dicț ionarele, atâta timp cât elementele lui s
sunt hashabile, astfel încât pot fi folosite ca chei în
d:

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


26
Dezvoltarea aplicaț iilor folosind Python 18CS55

Program: Pentru a număra frecvenț a Ieș ire

5 Ilustrează conceptul de funcț ie pură cu cod Python. 6

Funcț ie pură: Nu modifică niciunul dintre obiectele transmise ca argumente ș i nu are efect,
cum ar fi afiș area unei valori sau obț inerea unei intrări de la utilizator, în afară de returnarea unei valori.

Ex: În exemplul de mai jos, cele două obiecte start ș i durată au fost transmise ca parametri la
funcț ia add_time ș i nu modifică obiectele primite. Prin urmare, este o funcț ie pură.

Prof. Suvika K V, Dept. of CSE, CBIT, Kolar 2020-21


27
Dezvoltarea aplicaț iilor folosind Python 18CS55

6 Define ț i diagramă de clasă. Discuta ț i necesitatea reprezentării rela ț iilor dintre clase folosind diagramă de clasă. 7
Diagramă cu exemplu potrivit.

Diagramă de stivă reprezintă starea unui program, diagramă de obiecte reprezintă atributele ș i ale lor
valorile ș i ambele sunt foarte detaliate. Pe când, diagrama de clasă reprezintă reprezentarea abstractă a
structura programului. Există mai multe tipuri de relaț ii între clase:
1. Obiectele dintr-o clasă pot con ț ine referin ț e la obiecte dintr-o altă clasă. De exemplu, fiecare
Racul conț ine o referinț ă la un Punct, iar fiecare Pachet conț ine referinț e la multe Cărț i. Aceasta
un fel de relaț ie se numeș te HAS-A, ca în „un dreptunghi are un punct.”

2. O clasă poate mo ș teni de la alta. Această rela ț ie se nume ș te IS-A, adică, „o Mână este un tip de
o punte.
3. O clasă ar putea depinde de alta în sensul că modificările într-o clasă ar necesita modificări
în cealaltă.
Diagrama de clasă: Este o reprezentare grafică a relaț iilor.
Ex:

relaț ia IS-A Săgeată cu un cap de triunghi gol Mana moș teneș te de la Deck
relaț ie HAS-A Săgeată Standard Deck-ul are referinț e la obiecte de tip card.
Stea(*) Multiplicitate Indică câte cărț i are un pachet.

7 Ce este o clasă? Cum definim o clasă în python? Cum instanț iem clasa ș i cum se face o clasă 8
membrii sunt accesaț i?

Clasa este un tip de date abstract care poate fi definit ca un ș ablon sau o schiț ă care descrie
comportament / stare pe care obiectul tipului său o susț ine.
Definim clasa după cum urmează:

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


28
Dezvoltarea aplicaț iilor folosind Python 18CS55

Antetul indică faptul că noua clasă se numeș te Punct.


Corpul este un docstring care explică pentru ce este clasa. Puteț i defini variabile ș i metode.
în interiorul unei definiț ii de clasă.
Procesul de creare a acestui obiect se numeș te instanț iere.
Clasa poate fi utilizată pentru a crea noi instanț e de obiecte (instanț iere) ale acelei clase.
Membrii clasei sunt accesaț i folosind operatorul punct, aș a cum este arătat mai jos:

clasa Punct:
„ „ „ Reprezintă un punct în spaț iul 2-D „ „ „
blank = Point( )
blank.x = 10
blank.y = 20
8 Scrieț i un program Python care foloseș te modulul datetime într-o clasă, care ia o dată de naș tere ca input. 7
ș i afiș ează vârsta utilizatorului ș i numărul de zile, ore, minute ș i secunde până la următoarea sa
zi de naș tere.

import datetime

def get_user_birthday():
year = int(input('When is your birthday? [YY] '))
luna = int(input('Când este ziua ta de naș tere? [LL] '))
day = int(input('When is your birthday? [DD] '))
birthday = [Link](year,month,day)
returnează ziua de naș tere

def calculează_date(original_date, acum):


date1 = now
date2 = [Link]([Link], original_date.luna, original_date.zi)
delta = date2 - date1
zile = delta.total_seconds() / 60 / 60 / 24
returnaț i zilele

def arata_informatiile(self):

trece

bd = get_user_birthday()
now = [Link]()
c = calculează_date(bd, acum)
print(c)

9 Explicaț i metodele __init__ ș i __str__. 5

Referiț i-vă la Modulul 4 Întrebarea 3 Deasupra

10 Explică suprascrierea operatorului cu un exemplu. 7

Prof. Suvika K V, Dept. of CSE, CBIT, Kolar 2020-21


29
Dezvoltarea aplicaț iilor utilizând Python 18CS55

Supraîncărcarea operatorilor: Capacitatea unui operator existent de a funcț iona pe un tip de date definit de utilizator. Este o formă de polimorfism.

natura oricărui programare orientată pe obiect. Operatorii de bază precum +, -, * pot fi suprasolicitaț i. Aici,
comportamentul unui operator este schimbat ca + astfel încât să funcț ioneze cu un tip definit de utilizator.

Ex: + _ _ adăuga _ _ - _ _sub_ _ * _ _ mul_ _

Program: Output:
clasa A: 3
def __init__(self, a):
self.a = a -1

def __adăuga__(self, o): 2


returnează self.a + o.a
Aplicaț iiPython
def __sub__(self, o):
return self.a - o.a

def __mul__(self, o):


return self.a * o.a

ob1 = A(1)
ob2 = A(2)
ob3 = A("Python")
ob4 = A("Applications")

print(ob1 + ob2)
print(ob1 - ob2)
print(ob1 * ob2)
print(ob3 + ob4)

11 Ce sunt func ț iile polimorfice? Explica ț i cu un exemplu de cod. 7

Referinț ă Modulul 4 Întrebarea 4 Deasupra

Ilustrează conceptul de mo ș tenire cu un exemplu 6

Moș tenire: Capacitatea de a defini o nouă clasă care este o versiune modificată a unei clase definite anterior.

Clasă. Clasa din care o clasă copil moș teneș te se numeș te Clasã Părinte. O nouă clasă creată de
inheriting from an existing class is called asChild classorSub [Link] parent class will be
reprezentat între paranteze în timp ce se defineș te clasa copil. Moș tenirea poate facilita reutilizarea codului ș i de asemenea

comportamentul claselor părinte poate fi personalizat fără a fi necesar să le modificăm.

Ex:

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


30
Dezvoltarea aplicaț iilor folosind Python 18CS55

În exemplul de mai sus, deck este clasa părinte ș i hand este clasa copil, iar clasa hand poate folosi add_card.
ș i pop_card.

MODULUL 5
1 Explicaț i procesul de descărcare a fiș ierelor de pe Web folosind modulul requests ș i, de asemenea, 8
salvarea fiș ierelor descărcate pe hard disk cu un program de exemplu adecvat.

Descărcarea fiș ierelor de pe Web cu modulul requests:


Modulul requests ne permite să descărcăm cu uș urinț ă fiș iere de pe Web fără a fi nevoie să ne facem griji cu privire la

probleme complicate precum erorile de reț ea, problemele de conexiune ș i compresia datelor.

Ex:

Salvarea fiș ierelor descărcate pe hard disk

Putem salva pagina web într-un fiș ier pe hard disk-ul nostru cu funcț ia standard open() ș i write()
metodă.

Trebuie să deschidem fiș ierul în modul de scriere binar, prin transmiterea ș irului 'wb' ca al doilea argument la
deschide().

Chiar dacă pagina este în text simplu, trebuie să scriem date binare în loc de date text pentru a menț ine
codificarea Unicode a textului.
Ex:

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


31
Dezvoltarea aplicaț iilor folosind Python 18CS55

2 Scrie o notă pe tema următoare, demonstrând cu un fragment de cod. 7


i) Deschiderea documentelor Excel cu openpyxl.
ii) Obț inerea foilor din registrul de lucru.
iii) Obț inerea celulelor, rândurilor ș i coloanelor din foi.

Deschiderea documentelor Excel cu openpyxl.


Odată ce am importat modulul openpyxl, vom putea folosi openpyxl.load_workbook()
funcț ie.

Func ț ia openpyxl.load_workbook() prime ș te numele fi ș ierului ș i returnează o valoare a


tip de date pentru caiet de sarcini.

Obț inerea foilor din caietul de sarcini.

Putem obț ine o listă cu toate numele foilor din registrul de lucru apelând metoda get_sheet_names() .
Fiecare foaie este reprezentată de un obiect Worksheet, pe care îl putem obț ine trecând numele foii
string la metoda get_sheet_by_name() a caietului de lucru.

Putem apela metoda get_active_sheet() a unui obiect Workbook pentru a obț ine foaia de lucru activă a workbook-ului.

foaie.

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


32
Dezvoltarea aplicaț iilor folosind Python 18CS55

Obț inerea celulelor, rândurilor ș i coloanelor din foi.


Odată ce avem un obiect Worksheet, putem accesa un obiect Cell după numele său.
Obiectele celulelor au de asemenea atributul rând, coloană ș i coordonate care oferă informaț ii despre locaț ie
pentru celulă.
Atributul rândului ne dă integerul 1, atributul coloanei ne dă 'B', iar coordonata
atributul ne dă 'B1'.

Ex:

3 Descrie funcț ia getText() utilizată pentru a obț ine textul complet dintr-un fiș ier .docx cu un exemplu de cod. 5

funcț ia getText() acceptă un nume de fiș ier al unui fiș ier .docx ș i returnează o singură valoare de tip ș ir a acestuia
text.
getText() este folosit:

a modifica ș irul înainte de a-l returna.


Pentru a adăuga un dublu spa ț iu între paragrafe, schimba ț i codul apelului join() la acesta:
Ex: În exemplul de mai jos, funcț ia getText() deschide documentul Word, parcurge toate
obiectele paragraf din lista de paragrafe, apoi adaugă textul lor în lista fullText.

4 Explicaț i cum să recuperaț i un element de pagină web dintr-un obiect BeautifulSoup apelând select 8
metodă ș i transmiterea unui ș ir de selecț ie CSS pentru elementul pe care îl căutaț i cu un
program de exemplu.

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


33
Dezvoltarea aplicaț iilor folosind Python 18CS55

Beautiful Soup este un modul pentru extragerea informaț iilor dintr-o pagină HTML.
Pentru a-l instala, va trebui să rulăm pip install beautifulsoup4 din linia de comandă.
În timp ce beautifulsoup4 este numele folosit pentru instalare, pentru a importa Beautiful Soup, rulăm import
bs4.
Funcț ia [Link]() trebuie apelată cu un ș ir care conț ine HTML-ul pe care îl va
parse. Funcț ia [Link]() returnează un obiect BeautifulSoup.
Putem recupera un element de pagină web dintr-un obiect BeautifulSoup apelând metoda select()
ș i trecând un ș ir de selecț ie CSS pentru elementul pe care îl căutaț i.
Ex:

5 Ce este JSON? Explicaț i pe scurt modulul json din Python. Demonstraț i cu un exemplu Python. 6
program.

JSON (pronunț at „JAY-sawn” sau „Jason”) este un format care stochează informaț ii ca JavaScript
cod sursă în fiș iere text.

JSON este util de cunoscut, deoarece multe site-uri oferă conț inut JSON ca o modalitate pentru programe de a
interacț iona cu site-ul. Acest lucru este cunoscut ca furnizarea unei interfeț e de programare a aplicaț iilor (API).

Accesarea unei API este la fel ca accesarea unei alte pagini web printr-un URL. Modulul Json

Modulul json din Python gestionează toate detaliile traducerii între un ș ir cu date JSON ș i
Valorile Python pentru funcț iile [Link]() ș i [Link]().

Poate conț ine valori doar de următoarele tipuri de date: ș iruri de caractere, întregi, float-uri, Booleeni, liste,
dicț ionare ș i NoneType.

JSON nu poate reprezenta obiecte specifice Python, cum ar fi obiectele File, CSV Reader sau Writer
obiecte, obiecte Regex sau obiecte WebElement Selenium.

Exemplu:

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


34
Dezvoltarea aplicaț iilor folosind Python 18CS55

6 Discutarea creaț iei, criptării ș i decriptării unui PDF. 6

Crearea de PDF-uri

Colectivul PyPDF2 pentru obiectele PdfFileReader este obiectele PdfFileWriter, care pot crea noi
Fiș iere PDF.
Crearea unui obiect PdfFileWriter creează doar o valoare care reprezintă un document PDF în Python. Este
nu creează efectiv fiș ierul PDF.

Metoda write() acceptă un obiect File obiș nuit care a fost deschis în modul scriere-binară, care
ia două argumente: ș irul care reprezintă numele fiș ierului PDF pe care dorim să-l avem ș i 'wb' pentru a indica
fiș ierul ar trebui să fie deschis în modul scriere-binar.

Criptarea PDF-urilor

Un obiect PdfFileWriter poate adăuga, de asemenea, criptare unui document PDF.

Înainte de a apela metoda write() pentru a salva într-un fiș ier, apelaț i metoda encrypt() ș i transmiteț i-i o parolă
ș ir

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


35
Dezvoltarea aplicaț iilor folosind Python 18CS55

Dezvoltarea PDF-urilor

Unele documente PDF au o caracteristică de criptare care le va împiedica să fie citite până când
oricine deschide documentul oferă o parolă.

Toate obiectele PdfFileReader au un atribut isEncrypted care este True dacă PDF-ul este criptat ș i
Fals dacă nu este.

Pentru a citi un PDF criptat, apelaț i funcț ia decrypt() ș i transmiteț i parola ca un ș ir.
După ce programul nostru se finalizează, fiș ierul de pe hard diskul nostru rămâne criptat. Programul nostru va avea
să apeleze din nou decrypt() data viitoare când este executat.

7 Cum descărcăm un fiș ier ș i îl salvăm pe hard disk folosind modulul request? 6

Referinț ă Modulul 5 Întrebarea 1

8 Scrieț i un program python pentru a prelua cuvântul cheie de căutare din argumentele liniei de comandă ș i a deschide 6
tab de browser pentru fiecare pagină de rezultate.

Program: importă cereri, sistem, webbrowser, bs4 print('Căutând pe Google...')

# afiș aț i textul în timp ce descărcaț i pagina Google res =


[Link]('[Link] + ' '.join([Link][1:]))
res.raise_for_status()

# Recuperaț i cele mai bune link-uri de rezultate căutare. supă =

[Link]([Link],"[Link]")

Deschide o filă de browser pentru fiecare rezultat.

linkElems = [Link]('.r a')


numOpen = min(5, len(linkElems))
pentru i în intervalul(numOpen):
[Link]('[Link] + linkElems[i].get('href'))

9 Explicaț i metodele webdriver-ului Selenium pentru găsirea elementelor. 8

Obiectele WebDriver au destul de multe metode pentru a găsi elemente pe o pagină.


Ele sunt împărț ite în metodele find_element_* ș i find_elements_*.
metodele find_element_* returnează un singur obiect WebElement, reprezentând primul element de pe
pagina care se potriveș te cu interogarea ta.

Metodele find_elements_* returnează o listă de obiecte WebElement_* pentru fiecare element care se potrive ș te

pe pagină.

Prof. Suvika K V, Dept. of CSE, CBIT, Kolar 2020-21


36
Dezvoltarea aplicaț iilor folosind Python 18CS55

Tabel: Metodele WebDriver ale Selenium pentru găsirea elementelor

10 Scrie un program care ia un număr N din linia de comandă ș i creează o8 matrice de înmul ț ire NxN
tabel în foaia de calcul Excel.

#!/usr/bin/env python3

Acest program ia un număr N din linia de comandă


# ș i creează un tabel de înmulț ire N pe N într-un fiș ier Excel.

import sys, openpyxl


din [Link] import Font
de la [Link] import get_column_letter, column_index_from_string

# Implicit n este 6
dacă len([Link]) > 1:
n = int([Link][1])
altfel:
n=6

Deschideț i un nou registru de lucru ș i schimbaț i foaia de lucru activă


wb = [Link]()
foaie = [Link]ă

# Tipăriț i anteturile
boldFont = Font(bold=True)
pentru i în gama(2, n+2):
multiplier = i - 1
leftCell = 'A' + str(i)
sheet[leftCell] = multiplier
sheet[leftCell].font = boldFont
rightCell = get_column_letter(i) + '1'
sheet[rightCell] = multiplier
sheet[rightCell].font = boldFont

Tipăriț i tabelul de înmulț ire

Prof. Suvika K V, Departamentul de CSE, CBIT, Kolar 2020-21


37
Dezvoltarea aplicaț iilor folosind Python 18CS55

pentru i în intervalul(2, n+2):


leftMultiplier = i - 1
pentru j în intervalul(2, n+2):
rightMultiplier = j - 1
celula = get_column_letter(j) + str(i)
sheet[cell] = leftMultiplier*rightMultiplier

Îngheaț ă anteturile
sheet.freeze_panes = 'B2'

Salvează în noul fiș ier Excel în directorul de lucru curent


[Link]('[Link]')

11 Scrie ț i note scurte despre: Crearea, copierea ș i rotirea paginilor cu privire la 6PDF.

Crearea PDF-urilor

Contrapartea lui PdfFileReader din PyPDF2 este obiectul PdfFileWriter, care poate crea noi
fiș iere PDF.
Crearea unui obiect PdfFileWriter creează doar o valoare care reprezintă un document PDF în Python. Aceasta
nu generează efectiv fiș ierul PDF.

Metoda write() ia un obiect File obiș nuit care a fost deschis în modul de scriere-binară, care
ia două argumente: ș irul cu numele pe care dorim să-l aibă fiș ierul PDF ș i 'wb' pentru a indica
fiș ierul trebuie deschis în modul de scriere-binar.

Copierea paginilor

Putem folosi PyPDF2 pentru a copia pagini dintr-un document PDF într-altul. Acest lucru permite să
combină mai multe fiș iere PDF, taie paginile nedorite sau reordonare paginile.

Rotiț i paginile
Paginile unui PDF pot fi de asemenea rotite în paș i de 90 de grade cu rotateClockwise() ș i
metodele rotateCounterClockwise()

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


38
Dezvoltarea aplicaț iilor folosind Python 18CS55

12 Scrie un program care să găsească toate fi ș ierele CSV din directorul de lucru 6
curent, să le citească complet
conț inutul fiecărui fiș ier, scrie conț inutul, sărind peste primul rând, într-un nou fiș ier CSV 6.

#! python3
# [Link] - Elimină antetul din toate fiș ierele CSV din directorul curent
# director de lucru.

importa csv, os

[Link]('headerRemoved', exist_ok=True)

Iteraț i prin fiecare fiș ier din directorul de lucru curent.


pentru csvFilename în [Link]('.'):
dacă nu se termină csvFilename cu '.csv':
continuă # sari peste fiș ierele care nu sunt csv

print('Îndepărtarea antetului din ' + csvFilename + '...')

Citeș te fiș ierul CSV (sărind prima linie).


csvRows = []
csvFileObj = deschide(csvFilename)
readerObj = [Link](csvFileObj)
pentru fiecare rând în readerObj:

dacă readerObj.line_num == 1:
continuă # sări peste prima linie
[Link](row)
[Link]()

Scrieț i fiș ierul CSV.


csvFileObj = open([Link]('headerRemoved', csvFilename), 'w', newline='')
csvWriter = [Link](csvFileObj)
pentru rând în csvRows:
[Link](row)
[Link] închide()

Prof. Suvika K V, Dept. de CSE, CBIT, Kolar 2020-21


39

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