Răspuns :
class Carte:
def __init__(self, denumire = None, autor = None, numar_de_pagini = None):
self.denumire = denumire
self.autor = autor
self.numar_de_pagini = numar_de_pagini
def __str__(self):
return f"\"{self.denumire.capitalize()}\" de {self.autor.capitalize()}"
carti = list()
# Asigurarea ca numarul de carti este un numar
while True:
try:
numar_de_carti = int( input( "Introduceti numarul de carti: " ) )
break
except ValueError:
print("Numar invalid.")
print()
# Eroare la numar invalid
if numar_de_carti < 1:
raise ValueError("Numar invalid de carti.")
# Citeste cartile, se asigura ca numarul de pagini este valid si memoreaza pozitia cartii cu cele mai multe pagini
numar_maxim_de_pagini = 0
for i in range(numar_de_carti):
denumire = input("Introduceti denumirea cartii: ")
autor = input("Introduceti numele autorului: ")
while True:
try:
numar_de_pagini = int(input("Introduceti numarul de pagini: "))
break
except ValueError:
print("Numar invalid.")
print()
if numar_de_pagini < 1:
raise ValueError("Numar invalid de pagini.")
if numar_de_pagini > numar_maxim_de_pagini:
numar_maxim_de_pagini = numar_de_pagini
pozitie = i
carte = Carte(denumire, autor, numar_de_pagini)
carti.append(carte)
# Scrie cartea cu cel mai mare numar de pagini
print(f"Cartea cu cele mai multe pagini este: {carti[pozitie]} ({carti[pozitie].numar_de_pagini} de pagini)")
# Scrie cartile scrise de Eminescu
for carte in range(numar_de_carti):
if "Eminescu" in carti[carte].autor.capitalize():
print(carti[carte])