Összetett feladat
Estimated reading: 4 minutes
0 views
Összetett feladat
magyarázat
def feladat():
epuletek = []
f = open('legmagasabb.txt', encoding='UTF-8')
f.readline()
sor = f.readline()
while (sor):
epuletek.append(Épület(sor))
sor = f.readline()
f.close()
- Első lépésben létrehozunk egy üres listát,
epuletek
néven, amelyben tárolni fogjuk az épületeket. - Megnyitjuk a
legmagasabb.txt
nevű fájlt olvasásra, UTF-8 kódolással. - Beolvassuk az első sort a fájlból, majd további sorokat olvasunk be egy ciklusban.
- Minden beolvasott sort hozzáadunk az
epuletek
listához, azÉpület
osztály segítségével létrehozva egy új épületet. - Amikor már nincs több sor, bezárjuk a fájlt.
print('Épületek száma: {0} db'.format(len(epuletek)))
- Kiírjuk a képernyőre az épületek számát, az
epuletek
lista hosszát használva.
osszEmelet = 0
for e in epuletek:
osszEmelet += e.emelet
print('Emeletek összege: {0}'.format(osszEmelet))
- Egy
for
ciklussal végigiterálunk azepuletek
listán, és minden épület emelet számát hozzáadjuk azosszEmelet
változóhoz. - Kiírjuk a képernyőre az emeletek összegét.
legmagasabbEpulet = epuletek[0]
for e in epuletek:
if (legmagasabbEpulet.magassag < e.magassag):
legmagasabbEpulet = e
print('\tNév: {0}'.format(legmagasabbEpulet.nev))
print('\tVáros: {0}'.format(legmagasabbEpulet.varos))
print('\tOrszág: {0}'.format(legmagasabbEpulet.orszag))
print('\tMagasság: {0}'.format(legmagasabbEpulet.magassag))
print('\tEmeletek száma: {0}'.format(legmagasabbEpulet.emelet))
print('\tÉpítés éve: {0}'.format(legmagasabbEpulet.epult))
- Az
epuletek
lista első elemét (azaz az első épületet) alapértelmezetten a legmagasabb épületnek tekintjük. - Egy
for
ciklussal végigiterálunk azepuletek
listán, és minden épületet összehasonlítunk a jelenlegi legmagasabb épülettel. - Ha találunk egy olyan épületet, amely magasabb, mint a jelenlegi legmagasabb épület, akkor frissítjük a
legmagasabbEpulet
változót. - Kiírjuk a képernyőre a legmagasabb épület adatait.
i = 0
while i < len(epuletek) and epuletek[i].orszag != 'Olaszország':
i += 1
if i < len(epuletek):
print('Van olasz épület az adatok között!')
else:
print('Nincs olasz épület az adatok között!')
- Inicializálunk egy
i
változót, amelyet a ciklus indexelésére használunk. - Egy
while
ciklusban végigmegyünk azepuletek
listán, és megvizsgáljuk, hogy az épület országa ‘Olaszország’-e. - Ha találunk egy olasz épületet, akkor befejezzük a ciklust, és kiírjuk, hogy van olasz épület az adatok között.
- Ha nem találunk olasz épületet, akkor kiírjuk, hogy nincs olasz épület az adatok között.
Teljes kód
def feladat():
epuletek = []
f = open('legmagasabb.txt', encoding='UTF-8')
f.readline()
sor = f.readline()
while (sor):
epuletek.append(Épület(sor))
sor = f.readline()
f.close()
print('Épületek száma: {0} db'.format(len(epuletek)))
osszEmelet = 0
for e in epuletek:
osszEmelet += e.emelet
print('Emeletek összege: {0}'.format(osszEmelet))
legmagasabbEpulet = epuletek[0]
for e in epuletek:
if (legmagasabbEpulet.magassag < e.magassag):
legmagasabbEpulet = e
print('A legmagasabb épület adatai')
print('\tNév: {0}'.format(legmagasabbEpulet.nev))
print('\tVáros: {0}'.format(legmagasabbEpulet.varos))
print('\tOrszág: {0}'.format(legmagasabbEpulet.orszag))
print('\tMagasság: {0}'.format(legmagasabbEpulet.magassag))
print('\tEmeletek száma: {0}'.format(legmagasabbEpulet.emelet))
print('\tÉpítés éve: {0}'.format(legmagasabbEpulet.epult))
i = 0
while i < len(epuletek) and epuletek[i].orszag != 'Olaszország':
i += 1
if i < len(epuletek):
print('Van olasz épület az adatok között!')
else:
print('Nincs olasz épület az adatok között!')