118 lines
3.9 KiB
Python
118 lines
3.9 KiB
Python
from operator import attrgetter
|
|
|
|
# Class for the datas
|
|
class meres():
|
|
def __init__(self, telepules, ido, szel, homerseklet):
|
|
self.telepules = telepules
|
|
self.ido = ido
|
|
self.szel = szel
|
|
self.homerseklet = homerseklet
|
|
|
|
class varos():
|
|
def __init__(self, nev, kozephez, minTemp, maxTemp):
|
|
self.nev = nev
|
|
self.kozephez = kozephez
|
|
self.minTemp = minTemp
|
|
self.maxTemp = maxTemp
|
|
|
|
def kozepHomerseklet(self):
|
|
if "NA" in self.kozephez:
|
|
return f"{self.nev} NA"
|
|
else:
|
|
return f"{self.nev} {round(sum(self.kozephez) / len(self.kozephez))}"
|
|
|
|
def homersekletIngadozas(self):
|
|
return f"{(self.maxTemp - self.minTemp)}"
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
# 1. Feladat: Read in the data
|
|
meresek = []
|
|
file = open("tavirathu13.txt")
|
|
|
|
for line in file:
|
|
meresek.append(meres(line.split()[0],
|
|
f"{line.split()[1][0]}{line.split()[1][1]}:{line.split()[1][2]}{line.split()[1][3]}",
|
|
line.split()[2],
|
|
int(line.split()[3])))
|
|
|
|
# 2. Feladat:
|
|
print("2. Feladat:")
|
|
inCity = input("Adja meg egy település kódját! Település: ")
|
|
|
|
for i in range(len(meresek) - 1, -1, -1):
|
|
if meresek[i].telepules == inCity:
|
|
print(f"Az utolsó mérési adat a megadott településről {meresek[i].ido}-kor érkezett.")
|
|
break
|
|
|
|
# 3. Feladat:
|
|
print("3. Feladat:")
|
|
# Minimum temperature
|
|
minTemp = min(meresek, key=attrgetter("homerseklet")).homerseklet
|
|
minCity = min(meresek, key=attrgetter("homerseklet")).telepules
|
|
minTime = min(meresek, key=attrgetter("homerseklet")).ido
|
|
|
|
print(f"A legalacsonyabb hőmérseklet {minCity} {minTime} {minTemp} fok")
|
|
|
|
# Maximum temperature
|
|
maxTemp = max(meresek, key=attrgetter("homerseklet")).homerseklet
|
|
maxCity = max(meresek, key=attrgetter("homerseklet")).telepules
|
|
maxTime = max(meresek, key=attrgetter("homerseklet")).ido
|
|
|
|
print(f"A legalacsonyabb hőmérseklet {maxCity} {maxTime} {maxTemp} fok")
|
|
|
|
# 4. Feladat:
|
|
print("4. Feladat:")
|
|
szelCsend = []
|
|
for i in meresek:
|
|
if i.szel == "00000":
|
|
szelCsend.append(f"{i.telepules} {i.ido}")
|
|
|
|
if len(szelCsend) > 0:
|
|
for i in range(0, len(szelCsend), 1):
|
|
print(szelCsend[i])
|
|
else:
|
|
print("Nem volt szélcsend a mérések idején")
|
|
|
|
# 5. Feladat:
|
|
print("5. Feladat:")
|
|
varosok = []
|
|
for i in range(0, len(meresek), 1):
|
|
if len(varosok) == 0:
|
|
varosok.append(meresek[i].telepules)
|
|
if meresek[i].telepules not in varosok:
|
|
varosok.append(meresek[i].telepules)
|
|
|
|
varosokClass =[]
|
|
for i in varosok:
|
|
temps = []
|
|
temps2 = []
|
|
for j in range(0, len(meresek), 1):
|
|
if i == meresek[j].telepules:
|
|
temps.append(meresek[j].homerseklet)
|
|
if "01:" in meresek[j].ido:
|
|
temps2.append(int(meresek[j].homerseklet))
|
|
elif "07:" in meresek[j].ido:
|
|
temps2.append(int(meresek[j].homerseklet))
|
|
elif "13:" in meresek[j].ido:
|
|
temps2.append(int(meresek[j].homerseklet))
|
|
elif "13:" in meresek[j].ido:
|
|
temps2.append(int(meresek[j].homerseklet))
|
|
minTemp = min(temps)
|
|
maxTemp = max(temps)
|
|
|
|
if len(temps2) != 4:
|
|
for n in range(0, len(temps2), 1):
|
|
temps2[n] = "NA"
|
|
for n in range(len(temps2) - 1, 5, 1):
|
|
temps2.append("NA")
|
|
|
|
varosokClass.append(varos(i, temps2, minTemp, maxTemp))
|
|
|
|
for i in varosokClass:
|
|
print(f"Hőmérséklet-ingadozás: {i.homersekletIngadozas()}")
|
|
|
|
# a) részhez visszatérni
|
|
|
|
|