OOP változat. Először is szögezzük le, hogy a feladat kérdésben idézett része meglehetősen kevés az osztály megtervezéséhez. Mert ez alapból baromság:
> Készítsen AtszamolPercreazonosítóval egész típusú értékkel visszatérő metódust vagy függvényt, ami a paraméterként megadott óra- és percértéket percekre számolja át!
(…)
> Az órákat és a perceket percekre számolja át az előző feladatban elkészített metódus (függvény) hívásával!
Ha radio osztály metódusa a radio osztály tulajdonságait konvertálja, akkor minek neki paraméter? Ezzel lenullázza az egységbezárás értelmét.
(Apróság: a Python stílus útmutató szerint az osztály neve Radio, a metódusé atszamol_percre() kellene legyen.
https://peps.python.org/pep-0008/ )
# 5.
nev = input('Kérek egy nevet: ')
darab = sum(map(lambda sofor: sofor.db if sofor.nev == nev else 0, radiok))
# vagy
darab = sum([sofor.db for sofor in radiok if sofor.nev == nev])
# vagy
darab = 0
for sofor in radiok:
if sofor.nev == nev:
darab += sofor.db
if darab:
print(f'{nev} {darab}x használta a CB-rádiót.')
else:
print('Nincs ilyen nevű sofőr!')
# 6.
class radio:
#Konstruktor:
def __init__(self, ora, perc, db, nev):
self.ora = int(ora)
self.perc = int(perc)
self.db = int(db)
self.nev = nev
def AtszamolPercre(self):
return self.ora * 60 + self.perc
# 7.
with open('cb2.txt', 'w') as allomany:
print('Kezdés;Név;AdasDb', file = allomany)
for sofor in radiok:
# a korábbi válasz 6. pontnál létrehozott függvénnyel
print(AtszamolPercre(sofor.ora, sofor.perc), sofor.nev, sofor.db, sep = ';', file = allomany)
# az ebben a válaszban létrehozott metódussal
print(sofor.AtszamolPercre(), sofor.nev, sofor.db, sep = ';', file = allomany)