Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''' Se dau urmatoarele obiecte
- Student
- #nume: string
- #prenume: string
- #datNasterii: Data
- #sex: caracter
- #note: lista de numere
- ------------
- __repr__
- __init__
- Data
- #zi: int
- #luna: int
- #an: int
- ----------
- __init__(z,l,a)
- __repr__()
- '''
- import math
- class Student:
- def __init__(self, nume, prenume, datNasterii, sex, note):
- self.nume = nume
- self.prenume = prenume
- self.datNasterii = datNasterii
- self.sex = sex
- self.note = note
- def __repr__(self):
- return "(" + nume + ", " + prenume + ", " + datNasterii + ", " + sex + ", " + note + " )"
- class Data:
- def __init__(self, z, l, a):
- self.zi = z #proprietate
- self.luna = l
- self.an = a
- def __repr__(self):
- return "(" + str(self.zi) + ", " + str(self.luna) + ", " + str(self.an) + ")"
- def __eq__(self, bunica):
- c1 = self.zi == bunica.zi # este o conditie: true sau false
- c2 = self.luna == bunica.luna # tot conditie
- c3 = self.an == bunica.an # conditie
- return c1 and c2 and c3
- def __lt__(self, scufita):
- # __lt__ = less than
- # __gt__ = greated than
- # __le__ = less than and equal
- # __ge__ = greated then and equal
- # facem sortarea datelor prin verificare de conditii
- # intai incepem cu anul, apoi luna, apoi ziua
- if self.an < scufita.an:
- return True
- elif self.an > scufita.an:
- return False
- elif self.luna < scufita.luna:
- return True
- elif self.luna > scufita.luna:
- return False
- elif self.zi < scufita.zi:
- return True
- elif self.zi > scufita.zi:
- return False
- else:
- return False
- def __sub__(self, lupu):
- q1 = (self.an - 1) * 365 + (self.luna - 1) * 30 + self.zi
- q2 = (lupu.an - 1) * 365 + (lupu.luna - 1) * 30 + lupu.zi
- dif = abs(q1 - q2)
- ani = int(dif // 365)
- luni = int((dif % 365) // 30)
- zile = int(dif % 365 % 30)
- vanatorul = Data(zile, luni, ani)
- return vanatorul
- # creem obiecte cu diferite valori
- d1 = Data(15, 6, 2020)
- print(d1)
- d2 = Data(15, 8, 2020)
- d3 = Data(15, 6, 2020)
- if d1 != d2:
- print("D1 si D2 sunt diferite")
- if d1 == d3:
- print("D1 si D3 sunt egale")
- else:
- print("D1 si D3 sunt diferite")
- # facem o lista de obiecte
- lista = [d1, d2, d3]
- lista.sort()
- print(lista)
- dNastere = d1 - d2
- print(dNastere)
- # ------------------------------------------
- # definim clasa Student
- class Student:
- def __init__(self, nm, pm, dNasterii, gen):
- self.nume = nm
- self.prenume = pm
- self.dataNasterii = dNasterii
- self.sex = gen
- self.note = []
- today = Data(15, 6, 2020)
- dif = today - self.dataNasterii
- self.varsta = dif.an
- def __repr__(self):
- return ("Nume: " + self.nume + ", Prenume: " + self.prenume + ", Data nasterii: " + str(self.dataNasterii) +
- ", Sex: " + self.sex + ", Varsta: " + str(self.varsta))
- def __lt__(self, altStudent):
- if self.varsta < altStudent.varsta:
- return True
- else:
- return False
- def __eq__(self, altStudent):
- if self.nume == altStudent.nume and self.prenume == altStudent.prenume:
- return True
- else:
- return False
- Emilia = Student("Popescu", "Emilia", Data(1, 11, 1993), "feminin")
- print(Emilia)
- dn = Data(18, 12, 1991)
- Radu = Student("Popescu", "Radu", dn, "masculin")
- print(Radu)
- # diferenta intre Emilia si Radu
- DiferentaVarste = Emilia.varsta - Radu.varsta
- print(abs(DiferentaVarste))
- if Emilia > Radu:
- print("Emilia este mai mare")
- else:
- print("Radu este mai mare")
- if Emilia == Radu:
- print("Student duplicat")
- else:
- print("Persoane diferite")
- cateNote = int(input("Cate note vrei sa introduci pentru Emilia? "))
- for i in range(cateNote):
- Emilia.note.append(int(input("Introduceti nota pentru " + Emilia.nume + ": ")))
- print(Emilia.note)
- # Tema
- # Sa se defineasca clasa Produs (nume, pret, cod_de_bare)
- # Sa se implementeze __init__, __eq__ (nume), __lt__ (pret), dupa nume/pret.
- # Sa se defineasca clasa AgentVanzare (nume, prenume, produs_pe_care_il_vinde, nr_bucati)
- # Sa se implementeze __init__, __repr__, __lt__, __eq__
- # Comparatia se face dupa vanzari
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement