0% au considerat acest document util (0 voturi)
9 vizualizări54 pagini

Carnet de Laborator Python

Documentul conține o serie de exerciții de programare în Python, fiecare având ca scop dezvoltarea unor aplicații simple pentru diverse calcule și funcționalități. Exemplele includ calcularea impulsului unui obiect, costul închirierii de filme, verificarea tipului de triunghi și implementarea unor funcții matematice. Fiecare exercițiu este însoțit de un cod exemplu care ilustrează implementarea cerințelor.

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)
9 vizualizări54 pagini

Carnet de Laborator Python

Documentul conține o serie de exerciții de programare în Python, fiecare având ca scop dezvoltarea unor aplicații simple pentru diverse calcule și funcționalități. Exemplele includ calcularea impulsului unui obiect, costul închirierii de filme, verificarea tipului de triunghi și implementarea unor funcții matematice. Fiecare exercițiu este însoțit de un cod exemplu care ilustrează implementarea cerințelor.

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

Colegiul de Inginerie Guru Nanak Dev

Fiș ier practic

Programare Python
LPCIT-105

Submitted by: - Trimis către: -


Himanshu Mahajan Prof. Rupinder Kaur
C.R.N–2021150
U.R.N-2104587
D2-IT-B2
Conț inuturi

1. Impulsul unui obiect este masa sa înmulț ită cu viteza sa.


viteza. Scrie un program care acceptă un obiect
masă (în kilograme) ș i vitez (în metri pe secundă)
ca intrări ș i apoi îș i iese momentul..............................6
Five Star Retro Video închiriază casete VHS ș i DVD-uri.
pentru aceiaș i cunoscători care le place să cumpere discuri LP
magazinele. Magazinul închiriază videoclipuri noi pentru 3,00 $ pe noapte,
ș i vechituri pentru 2,00 dolari pe noapte. Scrie un program care
funcț ionarii de la Five Star Retro Video pot folosi pentru a calcula
costul total pentru închirierile de videoclipuri ale unui client.
programul ar trebui să ceară utilizatorului numărul de
fiecare tip de videoclip ș i totalul costului...........................7
3. (a). Scrie un program care calculează ș i afiș ează
valoarea unui an-lumină.
(b). Scrie un program care ia ca input un număr
de kilometri ș i afiș ează numărul corespunzător
mile marine.....................................................................8-9
4. Scrie un program care acceptă lungimile celor trei laturi ale unei
triunghi ca inputuri. Ieș irea programului ar trebui să indice
dacă triunghiul este sau nu un triunghi echilateral.....10-11
5. Scrie un program care acceptă lungimile a trei laturi ale unui
triunghi ca intrări. Ieș irea programului ar trebui să indice
dacă triunghiul este sau nu un triunghi drept. Amintiț i-vă din
teorema lui Pitagora care spune că într-un triunghi dreptunghic, pătratul
unui latură este egal cu suma pătratelor celorlalte două
părț i.....................................................................................12-13
6. Cel mai mare divizor comun al două numere întregi pozitive, A ș i
B este cel mai mare număr care poate fi împărț it uniform în ambele
al lor. Algoritmul lui Euclid poate fi folosit pentru a găsi cel mai mare
divizor comun (GCD) al două numere întregi pozitive...................14
7. Scrie un script numit [Link]. Acest script ar trebui să solicite
utilizator pentru numele a două fiș iere text ș i compararea conț inutului
din cele două fiș iere pentru a vedea dacă sunt la fel. Dacă sunt,
scriptul ar trebui să returneze simplu "Da". Dacă nu sunt, scriptul
ar trebui să afiș eze "Nu", urmat de primele rânduri din fiecare fiș ier
care diferă între ele. Ciclu de intrare ar trebui să citească ș i
compară liniile din fiecare fiș ier. Bucla ar trebui să se oprească imediat ce
pentru că se găsesc o pereche de linii diferite…………………..…15-16
8. Scrie un script numit [Link]. Acest script ar trebui să solicite
utilizatorul pentru numele a două fiș iere text. Conț inutul celor
primul fiș ier ar trebui să fie introdus ș i scris în al doilea
fiș ier……………………………………………………...…17-18
9. O deplasare de biț i este o procedură prin care biț ii dintr-un ș ir de biț i sunt
mutat spre stânga sau spre dreapta. De exemplu, putem schimba
bitii din ș irul 1011 două locuri spre stânga pentru a produce
ș irul 1110. Observaț i că cele mai din stânga două biț i sunt înfăș uraț i
în jurul părț ii din dreapta a firului în această operaț iune.
Defineste doua scripturi, [Link] si [Link], care
aș teptaț i un ș ir de biț i ca input. Scriptul shiftLeft deplasează
biț ii din intrarea sa cu un loc la stânga, înfăș urând cel mai din stânga
bitto cea mai din dreapta poziț ie. Scriptul shiftRight efectuează
operaț ia inversă. Fiecare script imprimă rezultatul
string……………………………………………………….…19
10. Scrie un program care citeș te un fiș ier text. Programul
ar trebui să imprime cuvintele unice din fiș ier în ordine alfabetică
comandă...................................................................................20-21
11. O concordanț ă a fiș ierului urmăreș te cuvintele unice dintr-un fiș ier
ș i frecvenț ele lor. Scrie un program care afiș ează o
concordanț ă pentru un fiș ier. Programul ar trebui să iasă
cuvinte unice ș i frecvenț ele lor în ordine alfabetică.
Variatiile sunt pentru a urmari secventele de doua cuvinte si ale lor
frecvenț e, sau n cuvinte ș i frecvenț ele lor................22-23
12. Scrieț i un program care să permită utilizatorului să navigheze
linii de text într-un fiș ier. Programul ar trebui să solicite utilizatorului
pentru un nume de fiș ier ș i introduceț i liniile de text într-o listă. The
programul intră apoi într-un ciclu în care tipăreș te numărul de
liniile din fiș ier ș i solicită utilizatorului un număr de linie.
Numerele de linie actuale variază de la 1 la numărul de linii în
fiș ierul. Dacă intrarea este 0, programul se închide. Altfel,
programul tipăreș te linia asociată cu aceasta
număr...............................................................................24-25
13. O listă este sortată în ordine ascendentă dacă este goală sau fiecare
elementul, cu excepț ia ultimului, este mai mic sau egal cu succesorul său.
Defineț i un predicat isSorted care se aș teaptă la o listă ca un
argument ș i returnează adevărat dacă lista este sortată, sau returnează
Fals în rest...................................................................26-27
14. Defineș te ș i testează o funcț ie myRange. Această funcț ie
ar trebui să se comporte ca funcț ia standard range din Python, cu
argumentele necesare ș i opț ionale, dar ar trebui să returneze un
listă. Nu folosi funcț ia range în
implementare!.................................................................28-29
15. Scrie un program care calculează ș i afiș ează media
al numerelor dintr-un fiș ier text. Ar trebui să foloseș ti două
funcț ii de ordin superior pentru a simplifica designul.................30-31

16. Scrie un program bazat pe GUI care implementează impozitul


program de calculator............................................................32-33
17. Write a GUI-based program that allows the user to
conversia valorilor temperaturii între grade Fahrenheit ș i
grade Celsius. Interfaț a ar trebui să aibă câmpuri de introducere etichetate
câmpuri pentru aceste două valori. Aceste componente ar trebui să fie
aranjate într-o reț ea unde etichetele ocupă prima linie ș i
câmpurile corespunzătoare ocupă a doua linie. La pornire,
câmpul Fahrenheit ar trebui să conț ină 32.0, iar Celsius
câmpul ar trebui să conț ină 0.0. A treia linie din fereastră
conț ine două butoane de comandă, etichetate >>>> ș i <<<
Când utilizatorul apasă primul buton, programul ar trebui să
foloseș te datele din câmpul Fahrenheit pentru a calcula Celsius
valoare, care ar trebui apoi să fie afiș ată în câmpul Celsius. Cea
al doilea buton ar trebui să execute funcț ia inversă.......34-36
18. Scrie un program pe bază de interfaț ă grafică care implementează o imagine
browser pentru sistemul de fiș iere al computerului tău. Aspectul, senzaț ia ș i
logica programului ar trebui să fie asemănătoare cu cea a fiș ierului text simplu
browserele dezvoltate în acest capitol. Dialogul de fiș iere ar trebui să
filtrează pentru fiș iere de imagine GIF ș i creează ș i deschide un PhotoImage
când un fiș ier este accesat.......................................................37-40
19. Adăugaț i trei metode clasei Student care compară
două obiecte Student. O metodă ar trebui să testeze pentru egalitate. A
a doua metodă ar trebui să testeze pentru mai puț in decât. A treia metodă
ar trebui să testeze pentru mai mare sau egal cu. În fiecare caz,
metoda returnează rezultatul comparaț iei celor două
numele studenț ilor. Includeț i o funcț ie principală care testează toate acestea
operatori de comparaț ie…………………………………...41-44
20. Acest proiect presupune că aț i finalizat Proiectul
1. Plasaț i mai multe obiecte Student într-o listă ș i amestecaț i-o.
Apoi rulează metoda de sortare cu această listă ș i afiș ează toate cele
informaț ii despre studenț i……………………………………45-48
21. Formele geometrice pot fi modelate ca clase. Dezvoltaț i
clase pentru segmente de linie, cercuri ș i dreptunghiuri. Fiecare formă
obiectul ar trebui să conț ină un obiect Turtle ș i o culoare care permite
forma care trebuie desenată într-o fereastră grafică Turtle. Factor
codul pentru aceste caracteristici (variabile de instanț ă ș i metode)
într-o clasă abstractă Shape. Cercul, dreptunghiul ș i linia
claselor sunt toate subclase ale Formei. Aceste subclase includ
alte informaț ii despre tipurile specifice de forme, cum ar fi
un raz sau un punct de colț ș i o metodă de desenare. Scrie un
script care utilizează mai multe instanț e ale diferitelor forme
cursuri pentru a desena o casă ș i o figură de pai
1An object ’s momentum is its mass multiplied by its velocity.
Scrie un program care acceptă masa unui obiect (în kilograme)
ș i viteza (în metri pe secundă) ca intrări ș i apoi ieș iri
momentumul său.

Cod: -
obț inerea valorii masei în float
mass = float(input("mass(kg) : "))
obț inerea valorii vitezei în float
velocity = float(input("velocity(m/s) : "))
#implementarea valorilor masei ș i vitezei în formulă
momentum = mass*velocity
Afiș aț i momentul
momentul obiectului în (kg.m/s) este :

Ieș ire: -
2 Five Star Retro Video închiriază casete VHS ș i DVD-uri la fel
cunoscătorii care le place să cumpere albume de discuri LP. Magazinul
închiriază videoclipuri noi pentru 3,00 dolari pe noapte ș i filme vechi pentru 2,00 dolari

noapte. Scrie un program pe care funcț ionarii de la Five Star Retro


Videoclipul poate fi folosit pentru a calcula totalul facturii pentru un client.
închirieri video. Programul ar trebui să solicite utilizatorului pentru
numărul fiecărui tip de videoclip ș i costul total.

-
# Cereț i intrarea
videos=int(input("enter no. of new : "))
oldies=int(input("introduceț i numărul de oldies : "))

Calculează rezultatul
result=(videos*3)+(oldies*2)
Afiș aț i costul total
costul total este

-
3 (A). Scrie un program care calculează ș i afi ș ează valoarea de
un an-lumină.
(B). Scrie un program care ia ca input un număr de
kilometri ș i afiș ează numărul corespunzător de mile nautice
mii. Folosiț i următoarele aproximaț ii:
• Un kilometru reprezintă 1/10.000 din distanț a dintre Polul Nord ș i
Ecuatorul.
• Există 90 de grade, fiecare conț inând 60 de minute de arc, între Nord
Polul ș i ecuatorul.
• O milă nautică este de 1 minut de arc.

(A)
Cod: -

# Rezolvarea părț ii (a)


# Definitie
year=365
hours=24*year
minute=ore*60
secunde=minute*60
Calculaț i viteza luminii
speedoflight=3*10^8
lightyear=speedoflight*seconds
Afiș ează viteza luminii
lumina călătoreș te

-
(B)
-

# Rezolvarea părț ii (b)


Solicitaț i intrarea
kilometri = int(input("introduceti cantitatea de kilometri :"))
Calculaț i valorile
degreesPerMin = 90*60
oneKilo = gradePeMin/10000
nauticalmile = oneKilo*kilometers
# Afiș aț i rezultatele
print(kilometri,"este",milenautice,"mile nautice")

-
Scrie ț i un program care acceptă lungimile a trei laturi ale unui
triunghi ca intrări. Ieș irea programului ar trebui să indice
dacă triunghiul este sau nu un triunghi echilateral.

Cod: -

obț ineț i lungimea primei laturi


A = int(input("introduceț i lungimea lui A : "))
obț ineț i lungimea celei de-a doua laturi
B = int(input("introduceț i lungimea lui B : "))
obț ineț i lungimea celei de-a treia laturi

C = int(input("introduceț i lungimea lui C : "))


dacă lungimea tuturor laturilor este egală atunci
dacă A == B == C:
PRINT("TRIUNGHIUL ESTE ECHILATERAL")
altfel triunghiul nu este echilateral
altfel:
TRIUNGHIUL NU ESTE Echilateral

-
5 Scrie ț i un program care acceptă lungimile a trei laturi ale unei
triunghi ca intrări. Ieș irea programului ar trebui să indice
indiferent dacă triunghiul este un triunghi drept. Amintiț i-vă de
Teorema lui Pitagora care într-un triunghi dreptunghic, pătratul
o latură este egală cu suma pătratelor celorlalte două laturi.

Code: -

obț ine lungimea primei laturi


A = int(input("introduceț i lungimea lui A : "))
obț ineț i lungimea celui de-al doilea latură

B = int(input("introduceț i lungimea lui B : "))


obtine lungimea celei de-a treia laturi
C = int(input("introduceț i lungimea lui C : "))
dacă pătratul laturii ipotenuzei este egal cu suma pătratelor celorlalte
2 feț e atunci

dacă C^2 == ((A^2)+(B^2)):


ESTE UN TRIUNGHI DREPT
# altfel nu este un triunghi drept
altfel:
NU ESTE UN TRIUNGHI DREPT

-
6 Cel mai mare divizor comun al două întregi pozitive, A ș
B este cel mai mare număr care poate fi împărț it în mod egal în ambele
al lor. Algoritmul lui Euclid poate fi folosit pentru a găsi cel mai mare
divizorul comun (GCD) al două numere întregi pozitive. Puteț i folosi
acest algoritm în următoarea manieră:
(a). Calculează restul împărț irii numărului mai mare la numărul mai mic
număr.
(b). Înlocuiț i numărul mai mare cu numărul mai mic ș i numărul mai mic
număr cu rest.
(c). Repetaț i acest proces până când numărul mai mic este zero. Numărul mai mare
în acest moment este GCD-ul lui A ș i B.
Scrieț i un program care permite utilizatorului să introducă două numere întregi ș i apoi să afiș eze fiecare.

pas în procesul de utilizare a algoritmului euclidian pentru a găsi GCD-ul lor.

# Cerere de intrare

small = int(input("Enter the smaller number: "))


large = int(input("Enter the larger number: "))
Calculaț i
pentru i în intervalul(1, mic+1):

dacă (small % i == 0) ș i (large % i == 0):


gcd = i
Cel mai mare divizor comun este {}

-
7 Scrie un script numit [Link]. Acest script ar trebui să ceară utilizatorului
utilizator pentru numele a două fiș iere text ș i compară conț inutul
din cele două fiș iere pentru a vedea dacă sunt la fel. Dacă sunt,
scriptul ar trebui să afiș eze pur ș i simplu "Da". Dacă nu sunt, scriptul
trebuie să imprime "Nu", urmat de primele linii ale fiecărui fiș ier
care diferă una de cealaltă. Bucla de intrare ar trebui să citească ș i
compară liniile din fiecare fiș ier. Bucla ar trebui să se oprească imediat ce
deoarece este găsită o pereche de linii diferite.

Cod: -

Ia intrările
fileName1 = input("Enter the first file name: ")
fileName2 = input("Enter the second file name: ")
# Deschideț i fiș ierele de intrare

inputFile1 = open(fileName1, 'r')


inputFile2 = open(fileName2, 'r')
# Citeș te fiecare pereche de linii ș i compară-le
în timp ce adevărată:

line1 = [Link]()
linie2 = [Link]()
dacă linia1 == "" ș i linia2 == "": # Sfârș iturile amânduror fiș ierelor

Da
pauză
elif linia1 != linia2:
Nu
print(line1)
print(linia2)
pauză
-
8 Scrie un script numit [Link]. Acest script ar trebui să ceară
utilizatorul pentru numele a două fiș iere text. Conț inutul celor
primul fiș ier ar trebui să fie introdus ș i scris în al doilea fiș ier.

file1=input("Enter First Filename : ")


file2=input("Enter Second Filename : ")
# deschide fiș ierul în modul de citire

fn1 = deschide(file1, 'r')


# deschide alt fiș ier în modul de scriere

fn2 = open(file2, 'w')


citiț i conț inutul fiș ierului linie cu linie
cont = fn1.citeste_liniile()

#tip(cont)
pentru i în intervalul (0, len(cont)):

[Link](cont[i])
închide fiș ierul
[Link]()
Conț inutul primului fiș ier a fost copiat în al doilea fiș ier
deschide fiș ierul în modul de citire

fn2 = open(file2, 'r')


citeș te conț inutul fiș ierului
cont1 = [Link]()
printaț i conț inutul fiș ierului
print("Conț inutul celui de-al doilea fiș ier:")

print(cont1)
# închide toate fiș ierele

[Link]()
[Link]()

-
9 Un bit shift este o procedură prin care bi ț ii dintr-un ș ir de bi ț i sunt
mutat la stânga sau la dreapta. De exemplu, putem schimba
biț i în ș irul 1011 cu două locuri la stânga pentru a produce
ș ir 1110. Observaț i că cele mai din stânga două biț i sunt înfăș uraț i
în jurul părț ii drepte a firului în această operaț iune. Defineș te
două scripturi, [Link] ș i [Link], care aș teaptă un bit
un ș ir ca intrare. Scriptul shiftLeft deplasează biț ii în partea stângă a acestuia
input un loc la stânga, înfăș urând cea mai din stânga biată la
poziț ia din dreapta. Scriptul shiftRight efectuează inversul
operaț iune. Fiecare script afiș ează ș irul rezultat.
-
Înș iraț i la dreapta

bits = input("Enter a string of bits: ")


dacă len(bits) > 1:
biti = biti[-1] + biti[:-1]
printaț i(biț ii)
Output: -

Mutare la stânga

bits = input("Enter a string of bits: ")


dacă len(bits) > 1:
bits = bits[1:] + bits[0]
printaț i(bits)
-
Scrie un program care introduce un fi ș ier text. Programul ar trebui să
tipăriț i cuvintele unice din fiș ier în ordine alfabetică.

Code: -

fname = input("Enter file name: ")


fh = open(fname)
lst = list()
# lista pentru rezultatul dorit
words=[]

pentru linie în fh:


pentru a citi fiecare linie din [Link]

cuvinte += [Link]()
[Link]()
# afiș ează cuvintele sortate
Cuvintele unice în ordine alfabetică sunt:
pentru cuvânt în cuvinte:

dacă cuvântul se află în lst:

dacă elementul este repetat


continuă
# nu face nimic
altfel:
# altfel dacă elementul nu este în listă
[Link](word)
printaț i(cuvântul)
#print(lst)
Output: -
Un concordan ț iar de fi ș ier urmăre ș te cuvintele unice dintr-un fi ș ier ș i semnifica ț ia acestora.

frecvenț e. Scrie un program care afiș ează o concordanț ă pentru


un fiș ier. Programul ar trebui să afiș eze cuvintele unice ș i
frecvenț e în ordine alfabetică. Variaț iile sunt pentru a urmări
secvenț e de două cuvinte ș i frecvenț ele lor, sau n cuvinte ș i
frecvenț ele lor.

Cod: -

#citiț i fiș ierul de la utilizator

file_name=input("Enter the file name which is in the computer : ")


deschide fiș ierul de citire în modul de citire

file = open(file_name,"r")
#iniț ializează dicț ionarul gol
words_freq={}
#citeș te fiș ierul ș i împarte cuvintele

#ș i iterează peste fiecare cuvânt din fiș ier


dacă un cuvânt nou este recunoscut, acesta va fi adăugat la dicț ionarul word_freq

#altfel creș teț i numărul de cuvinte

pentru w în [Link]().split():
dacă w nu este în frecvenț ele_cuvintelor:

words_freq[w] = 1
altfel:
words_freq[w] += 1
#închiderea fiș ierului de intrare

[Link]();
#sortează lista ș i afiș ează cuvântul ș i frecvenț a sa
pentru k în sortate(words_freq):
print(k,":",words_freq[k])
Output: -
12 Scrie un program care permite utilizatorului să navigheze printre linii de
text într-un fiș ier. Programul ar trebui să ceară utilizatorului pentru un
numele fiș ierului ș i introduceț i liniile de text într-o listă. Programul
apoi intră într-un ciclu în care imprimă numărul de linii în
fiș ier ș i solicită utilizatorului un număr de linie. Linia efectivă
numerele variază de la 1 la numărul de linii din fiș ier. Dacă
inputul este 0, programul se opreș te. Altfel, programul afiș ează
linie asociată cu acel număr.

Cod: -

Luaț i numele fiș ierului de intrare

inName = input("Enter the input file name: ")


# Deschideț i fiș ierul de intrare ș i citiț i textul

inputFile = open(inName, 'r')


lines = []
pentru linia în fiș ierul de intrare:

[Link](linie)
Buclă pentru numărul de linii de la utilizator până când aceasta introduce 0

# ș i afiș ează numărul liniei urmat de linie


în timp ce Adevărat:

Fiș ierul are


dacă len(linii) == 0:
pauză
lineNumber = int(input("Enter a line number [0 to quit]: "))
if lineNumber == 0:
pauză
elif lineNumber >= len(lines):
EROARE: numărul liniei trebuie să fie mai mic decât
altfel:
print(lineNumber, ": ", lines[lineNumber])

-
O listă este sortată în ordine ascendentă dacă este goală sau fiecare element
cu excepț ia ultimei care este mai mică sau egală cu succesorul său. Defineș te
un predicat esteSortat care aș teaptă o listă ca argument ș i
returnează True dacă lista este sortată, sau returnează False în caz contrar.

Cod: -

def esteSortat(lyst):
Returnează True dacă lista este sortată în ordine ascendentă

orice comandă sau Fals în caz contrar.

dacă len(lyst) == 0 sau len(lyst) == 1:


returnează Adevărat

altfel:
pentru index în interval(len(lyst) - 1):

dacă lyst[index] > lyst[index + 1]:


returnează Fals
returnaț i adevărat

def principal():

lyst = []
print(isSorted(lista))
lyst = [1]
print(isSorted(lyst))
lyst = list(range(10))
print(isSorted(lyst))
lyst[9] = 3
printaț i(isSorted(lyst))

principal()
-
14 Define ș i testează o func ț ie myRange. Această func ț ie ar trebui să
comportă-te ca funcț ia standard range din Python, cu
argumente necesare ș i opț ionale, dar ar trebui să returneze o listă.
Nu folosi funcț ia range în implementarea ta!

-
def myRange(start, stop = None, step = None):
lyst = []
dacă stop == None ș i step == None:
stop = start
start = 0
step = 1
dacă start < stop:
dacă pasul == None:
step = 1
elif pas <= 0:
returnaț i lista

în timp ce start < stop:

[Link](start)
start += pas
altfel:
dacă pas == None sau pas > -1:
returnaț i lista

în timp ce start > stop:

[Link](start)
start += pas
returnează lista
def principal():

print(myRange(10))
print(myRange(1, 10))
print(myRange(1, 10, 2))
printează(myRange(10, 1, -1))

principal()

-
15 Scrie un program care calculează ș i afi ș ează media lui
numere într-un fiș ier text. Ar trebui să foloseș ti două mai înalte-
ordine funcț ii pentru a simplifica designul.

Cod: -

din functools import reduce


def numereInFisier(nume_fisier):
numbers=[]
cu open(file_name, 'r') ca file:
num_list=[Link]().splitlines()
pentru i în lista_număr:

numbers+=[Link](' ')
returnaț i numerele

def adunare(x,y): return x+y


def principal():

file_name=input('Enter the input file name: ')


numere=list(map(int,numereDinFisier(nume_fisier)))
num_length=len(numere)
total=reduce(summation,numbers)
average=total/num_length
media este {average}

dacă __nume__=='__principal__':

main()
-
Scrie un program bazat pe GUI care implementează calculatorul de taxe
program

Cod: -
din breezypythongui import EasyFrame
clasă TaxCodeDemo(EasyFrame):
Fereastra aplicaț iei pentru calculatorul de taxe.
def __init__(self):
Configurează fereastra ș i widget-urile.
EasyFrame.__init__(self, title = "Calculator de taxe")
Eticheta ș i câmpul pentru venit
Venit
linie = 0, coloană = 0
[Link] = [Link](value = 0.0,
row = 0,
coloana = 1)
# Label and field for the number of dependents
Persoane în întreț inere
rând = 1, coloană = 0
[Link] = [Link](value = 0,
row = 1,
column = 1)
Butonul de comandă
Compute
columnspan = 2, comanda = [Link])
Etichetă ș i câmp pentru impozit
Taxă totală
linie = 4, coloană = 0
[Link] = [Link](value = 0.0,
row = 4,
column = 1,
precision = 2)
Metoda de gestionare a evenimentelor pentru buton

def calculaImpozitul(self):

Obț ine datele din câmpurile de introducere ș i foloseș te


să le calculeze impozitul, care este trimis la
câmp de ieș ire.
income = [Link]()
numDependents = [Link]()
tax = (income - numDependents) * .15
[Link](tax)
Instanț iaț i ș i deschideț i fereastra.
TaxCodeDemo().mainloop()

-
17 Scrie un program bazat pe interfa ț ă grafică care permite utilizatorului să efectueze conversii.

valori ale temperaturii între grade Fahrenheit ș i grade


Celsius. Interfaț a ar trebui să aibă câmpuri de introducere etichetate pentru
aceste două valori. Aceste componente ar trebui să fie aranjate într-o
grilă în care etichetele ocupă prima linie ș i...
câmpurile corespunzătoare ocupă a doua linie. La pornire,
Câmpul Fahrenheit ar trebui să conț ină 32.0, iar câmpul Celsius
ar trebui să conț ină 0.0. A treia linie din fereastră conț ine două
buton de comandă, etichetat >>>> ș i <<< Când utilizatorul
apasă primul buton, programul ar trebui să folosească datele în
câmpul Fahrenheit pentru a calcula valoarea Celsius, care
ar trebui să fie afiș at în câmpul Celsius. Al doilea buton
ar trebui să execute funcț ia inversă
Cod: -
din tkinter import *
clasa ConvertGUI(Frame):
def __init__(self):
Configurează fereastra ș i widget-urile.
Frame.__init__(self)
[Link]("Convertor de temperatură")
[Link]()
self._fahrVar = DoubleVar()
self._celsiusVar = DoubleVar()
self._fahrVar.set(32.0)
self._celsiusVar.set(0.0)
self._fahrLabel = Label(self, text = "Fahrenheit")
self._fahrLabel.grid(row = 0, column = 0)
self._fahrEntry = Entry(self, textvariable = self._fahrVar)
self._fahrEntry.grid(row = 1, column = 0)
self._celsiusLabel = Label(self, text = "Celsius")
self._celsiusLabel.grid(row = 0, column = 1)
self._celsiusEntry = Entry(self, textvariable = self._celsiusVar)
self._celsiusEntry.grid(row = 1, column = 1)
self._toCelsiusButton = Button(self, text = ">>>>",
command = self._toCelsius)
self._toCelsiusButton.grid(linie = 2, coloană = 0)
self._toFahrButton = Button(self, text = "<<<<",
command = self._toFahr)
self._toFahrButton.grid(row = 2, column = 1)
def _toCelsius(self):
Handler pentru evenimentul butonului toCelsius.
fahr = self._fahrVar.get()
celsius = (fahr - 32) * 5 / 9
self._celsiusVar.set(celsius)
def _laFahr(self):
Handler de eveniment pentru butonul toFahr.
celsius = self._celsiusVar.get()
fahr = celsius * 9 / 5 + 32
self._fahrVar.set(fahr)
def main():
ConvertGUI().mainloop()
principala()
-
18 Scrie un program bazat pe GUI care implementează o imagine
browser pentru sistemul de fiș iere al computerului dumneavoastră. Aspectul, senzaț ia ș i
logica programului ar trebui să fie similară cu cea a fiș ierului text simplu
bowser dezvoltat în acest capitol. Dialogul de fiș iere ar trebui să filtreze
pentru fiș ierele de imagine GIF ș i crează ș i deschide un PhotoImage atunci când
un fiș ier este accesat.

-
din tkinter import *
importaț i os

import [Link]
clasa ImageBrowser(Frame):
def __init__(self):
„Configurează fereastra ș i widget-urile.”
Frame.__init__(self)
[Link]("Navigator de imagini")

[Link](0, weight = 1)
[Link](0, weight = 1)
[Link](sticky = W+E+N+S)
# Configuraț i panoul ș i adăugaț i lista de selecț ie ș i aceasta

bară de derulare

self._listPane = Cadru(self)
self._listPane.grid(row = 0, column = 0,
sticky = N+S)
self._yScroll = Scrollbar(self._listPane,
orient = VERTICAL)
self._yScroll.grid(row = 0, column = 1,
sticky = N+S)
self._listBox = Listbox(self._listPane,
width = 20,
height = 10,
selectmode = SINGLE,
yscrollcommand = \
self._yScroll.set)
self._listBox.grid(row = 0, column = 0,
sticky = N+S)
self._yScroll["command"] = self._listBox.yview
Configuraț i câmpul de introducere, eticheta imaginii ș i butonul

self._pathVar = StringVar()
self._input = Entry(self,
textvariable = self._pathVar,
lăț ime = 70)
self._input.grid(row = 0, column = 1,
sticky = N)
self._imageLabel = Label(self, text = "")
self._imageLabel.grid(row = 1, column = 1)
self._goButton = Button(self,
Mergi
comanda = self._merge
self._goButton.grid(row = 1, column = 0)
Configurează panoul listei pentru a se extinde

[Link](0, weight = 1)
self._listPane.rowconfigure(0, weight = 1)
self._getPathAndFiles()
def _getPathAndFiles(self):
Setează câmpul ș i lista cu căile directorului curent
ș i directoarele ș i fiș ierele .gif din acel director,
respectiv.
self._path = [Link]()
self._pathVar.set(self._path)
fileList = filter(lambda f: ".gif" in f or [Link](f),
[Link](self._path))
index = self._listBox.size() - 1
în timp ce self._listBox.size() > 0:

self._listBox ș terge(index)
index -= 1
self._listBox.inserează(END, "..")
pentru f în listaDeFiș iere:

self._listBox.insert(END, f)
self._listBox.activează(0)
def _mergi(self):
Migratează într-un director sau afiș ează o imagine.

(index) = self._listBox.curselection()
item = self._listBox.get(index)
dacă [Link](item):
Este un fiș ier, aș a că încarcă imaginea

self._image = PhotoImage(file = item)


self._imageLabel["image"] = self._image
altfel:
Este un director, aș a că mutaț i-vă în el ș i actualizaț i vizualizarea

[Link](item)
self._getPathAndFiles()
self._imageLabel["image"] = None
self._image = None
def principala():

Instanț iază ș i deschide fereastra.


ImageBrowser().mainloop()
main()

Output: -
Adăuga ț i trei metode în clasa Student care compară două
Obiecte Student. O metodă ar trebui să testeze pentru egalitate. O
a doua metodă ar trebui să testeze pentru mai puț in decât. A treia metodă
ar trebui să testezi pentru mai mare decât sau egal cu. În fiecare caz,
metoda returnează rezultatul comparaț iei celor două
numele studenț ilor. Include o funcț ie principală care testează totul despre
operatori de comparaț ie.

Cod: -
Resurse pentru gestionarea numelui unui student ș i a notelor la teste.

Include metode pentru comparaț ii ș i testarea egalităț ii.


de la functools import reduce
clasa Student(object):
Reprezintă un student.
def __init__(self, nume, număr):
Toate scorurile sunt iniț ial 0.
self._name = name
self._scores = []
pentru număr în interval(number):

self._scores.append(0)
def obtineNumele(self):

Returnează numele studentului.


return self._name
def seteazaScor(self, i, scor):
Resetează scorul i, numărând de la 1.
self._scores[i - 1] = scor
def obtineScor(self, i):
Returnează scorul i, numărând de la 1.
returnează self._scores[i - 1]
def obtineMedia(self):
Returnează scorul mediu.
suma = reduce(lambda x, y: x + y, self._scores)
return suma / len(self._scores)
def obtineScorMaxim(self):
Returnează cel mai mare scor.
return reduce(lambda x, y: max(x, y), self._scores)
def __str__(self):
Întoarce reprezentarea sub formă de ș ir a studentului.
Nume:
" ".join(map(str, self._scores))
def __lt__(self, other):
Returnează self < other, în raport cu
la nume.
return self._name < other._name
def __gt__(self, altul):
Returnează self > other, cu respect
la nume.
return nu (self == other sau self < other)
def __le__(self, other):
Întoarce self <= other, cu respect
la nume.
return self == other sau self < other
def __ge__(self, other):
Returnează self >= other, cu respect
la nume.
reveni self == altul sau self > altul
def __eq__(self, other):
Teste pentru egalitate.
dacă sinele este altul:

returnează adevărat

elif type(self) != type(other):


returnează Fals

altfel:
return self._name == other._name
def principal():

„Testează egalitatea ș i comparaț iile.”


s1 = Student("Ken", 10)
s2 = Student("Maria", 10)
s3 = Student("Ken", 10)
print("Fals:", s1 == s2)
print("Adevărat:", s1 == s3)
print("Adevărat:", s1 == s1)

print("Fals:", s1 este s3)


print("Adevărat:", s1 < s2)
print("Adevărat:", s2 > s1)
print("Adevărat:", s2 >= s1)
print("Adevărat:", s1 >= s3)
print("Adevărat:", s1 <= s2)
printează("Adevărat:", s1 <= s3)

main()
Output: -
20 Acest proiect presupune că a ț i finalizat Proiectul 1. A ș ezaț i
mai multe obiecte Student într-o listă ș i amestecă-le. Apoi rulează
metoda sortare cu această listă ș i afiș aț i toț i studenț ii
informaț ie
Cod: -
Resurse pentru a gestiona numele unui student ș i rezultatele testelor.

Include metode pentru comparaț ii ș i teste de egalitate.


Testează clasa punând studenț ii într-o ordine aleatoare într-o listă
ș i apoi sortându-le.
din functools import reduce
clasă Student(object):
"Reprezintă un student."
def __init__(self, nume, număr):
Toate scorurile sunt iniț ial 0.
self._name = name
self._scores = []
pentru count în gamă(număr):
self._scores.append(0)
def obtineNume(self):
Întoarce numele studentului.
return self._name
def setScore(self, i, scor):
Resetează scorul i, numărând de la 1.
self._scores[i - 1] = punctaj
def getScore(self, i):
Returnează scorul i, numărând de la 1.
return self._scores[i - 1]
def obtineMedia(self):
Returnează scorul mediu.
sum = reduce(lambda x, y: x + y, self._scores)
return suma / len(self._scores)
def obtineScorInalt(self):
Returnează cel mai mare scor.
return reduce(lambda x, y: max(x, y), self._scores)
def __str__(self):
Returnează reprezentarea sub formă de ș ir a studentului.
Nume:
" ".join(map(str, self._scores))
def __lt__(self, other):
Întoarce self < other, cu respect
la nume.
return self._name < other._name
def __gt__(self, other):
Returnează self > other, cu respect
la nume.
nu returna (self == other sau self < other)
def __le__(self, other):
Returnează self <= other, cu respect
la nume.
return self == altceva sau self < altceva

def __ge__(self, other):


Returnează self >= other, în raport cu
la nume.
returnează self == other sau self > other

def __eq__(self, other):


Testele pentru egalitate.
dacă sinele este altcineva:

returnează Adevărat

elif type(self) != type(other):


întoarce False
altfel:
return self._name == other._name
importa aleatoriu
def principal():

Testează sortarea.
# Creează lista ș i pune 5 studenț i în ea
lyst = []
pentru număr în intervalul(5):

s = Student("Nume" + str(count + 1), 10)


[Link](s)
# Amestecă ș i tipăreș te conț inutul
[Link](lyst)
print("Lista nesortată a studenț ilor:")
pentru s în lyst:
printaț i(s)
# Sortează ș i afiș ează conț inutul
[Link]()
Lista sortată a studenț ilor:
pentru s în listă:

printează(s)

main()
-
21 Formele geometrice pot fi modelate ca clase. Dezvolta ț i clase
pentru segmente de linie, cercuri ș i dreptunghiuri. Fiecare obiect de formă
ar trebui să conț ină un obiect Turtle ș i o culoare care să permită
forma care trebuie desenată într-o fereastră de grafică Turtle. Factorează
cod pentru aceste caracteristici (variabile de instanț ă ș i metode) în
o clasă abstractă Shape. Cercul, Dreptunghiul ș i Linia
clasele sunt toate subclase ale formei. Aceste subclase includ
alte informaț ii despre tipurile specifice de forme, cum ar fi un
raza sau un punct de colț ș i o metodă de desenare. Scrie un script
care foloseș te mai multe instanț e ale diferitelor clase de forme pentru
desenează o casă ș i o figură de hită.

Cod: -
[Link]
"""
Defineste clase pentru segmente de linie, cercuri si dreptunghiuri folosind o broasca testoasa

obiect pentru a le desena.

"""
importaț i matematică

clasa Forma(object):
Reprezintă o formă cu o culoare ș i o ț estoasă.
def __init__(self, broască ț estoasă, culoare):

self._turtle = turtle
self._color = color
def obtineCuloare(self):

return self._culoare
def setColor(self, culoare):
self._color = color
clasă Linie(Formă):
Reprezintă un segment de linie.
def __init__(self, x1, y1, x2, y2, turtle, color):
Shape.__init__(self, ț estoasă, culoare)
self._x1 = x1
self._x2 = x2
self._y1 = y1
self._y2 = y2
def desenare(self):

Trasează o linie.
(r, g, b) = self._culoare
self._turtle.înălț ă
self._turtle.goto(self._x1, self._y1)
self._turtle.pencolor(r, g, b)
self._turtle.jos()
self._turtle.goto(self._x2, self._y2)
clasă Cercul(Formă):
Reprezintă un cerc.
def __init__(self, x, y, raza, ț estoasa, culoare):
Shape.__init__(self, ț estoasă, culoare)
self._x = x
self._y = y
self._radius = radius
def deseneaza(self):

Desenează un cerc.
(r, g, b) = auto._culoare
cantitate = 2.0 * [Link] * self._raza / 120.0
self._turtă.înălț aț i-vă()
self._turtle.goto(self._x + self._radius, self._y)
self._turtle.setheading(90)
self._turtle.coboară()
self._turtle.pencolor(r, g, b)
pentru număr în intervalul(120):

self._turtle.stanga(3)
self._turtle.înainta(amount)
clasă Dreptunghi( formă):
Reprezintă un dreptunghi.
def __init__(self, x, y, lăț ime, înălț ime, ț estoasă, culoare):
Shape.__init__(self, ț estoasă, culoare)
self._x = x
self._y = y
self._width = width
self._height = height
def desenează(self):

Desenează un dreptunghi.
(r, g, b) = auto._culoare
self._turtle.pune-te
self._turtle.merge(self._x, self._y)
self._turtle.setheading(0)
self._turtle.coboară()
self._turtle.pencolor(r, g, b)
self._turtle.inainte(self._width)
self._turtle.stanga(-90)
self._turtle.avans(self._inaltime)
self._turtle.stânga(-90)
self._turtle.avansază(self._lăț ime)
self._turtle.stanga(-90)
self._turtle înainte(self._height)

[Link]
"""
output:
Desenează o figură cu beț e ș i o casă folosind clase de forme.

"""
din forme importă Cercul, Linia, dreptunghiul
de la tartă importă Tartă
def principal():

Desenează o casă ș i o siluetă umană.


black = (0, 0, 0)
red = (255, 0, 0)
blue = (0, 0, 255)
turtle = Turtle()
[Link]()
Desenează figura din beț e
face = Circle(100, 0, 10, turtle, black)
body = Linie(100, -10, 100, -80, ț estoasă, negru)
arms = Line(80, -40, 120, -40, turtle, black)
leftLeg = Line(100, -80, 80, -100, turtle, black)
rightLeg = Line(100, -80, 120, -100, turtle, black)
faț [Link]()
[Link]()
[Link]()
[Link]()
[Link]()
Desenează casa
front = Rectangle(-180, 0, 120, 60, turtle, black)
door = Rectangle(-100, -30, 15, 30, turtle, blue)
roof1 = Line(-180, 0, -160, 20, turtle, red)
roof2 = Line(-160, 20, -80, 20, turtle, red)
roof3 = Line(-80, 20, -60, 0, turtle, red)
[Link]()
[Link]()
[Link]()
[Link]()
acoperiș [Link]ă()

main()

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