Idojarasfeladat/met10c2.py

71 lines
2.6 KiB
Python

with open('taviratok.txt',encoding='utf-8') as tfajl:
taviratok = [ sor.strip().split(' ') for sor in tfajl.readlines()]
print(taviratok)
print('2. feladat:')
vkod = input("Adja meg egy település kódját: ")
#átszámító függvény készítése csomóból m/s-ba
def csomobolSzamit(csomo):
sebms = csomo * 0.514
return sebms
#az irányt visszaadó függvény a fok szövegéből
def iranySzoveg(fok):
if fok == 'VRB':
return 'változó'
fokszam = int(fok)
if fokszam>315 or fokszam<=45:
return 'észak'
elif fokszam>45 and fokszam<=135:
return 'kelet'
elif fokszam>135 and fokszam<=225:
return 'dél'
else:
return 'nyugat'
visszataviratok = list(reversed(taviratok))
for meres in visszataviratok:
if meres[0] == vkod:
ir = iranySzoveg(meres[2][0:3])
mpers = csomobolSzamit(int(meres[2][3:]))
print('Az utolsó mérés:',meres[0],meres[1],ir,mpers,meres[3])
break
#3. feladat
#függvény a celsius-ból fahrenheit-be számításhoz
def celsiusToFahrenheit(cfok):
return cfok * 1.8 + 32
mereskicsi = taviratok[0]
meresnagy = taviratok[0]
for meres in taviratok:
if int(meres[3]) > int(meresnagy[3]):
meresnagy = meres
if int(meres[3]) < int(mereskicsi[3]):
mereskicsi = meres
kicsif = celsiusToFahrenheit(int(mereskicsi[3]))
nagyf = celsiusToFahrenheit(int(meresnagy[3]))
print('A minimum érték {0} helyen {1}-kor: {2} C és {3} F'.format(mereskicsi[0],
mereskicsi[1],
mereskicsi[3],
kicsif))
print('A maximum érték {0} helyen {1}-kor: {2} C és {3} F'.format(meresnagy[0],
meresnagy[1],
meresnagy[3],
nagyf))
#a középhőmérséklet a bekért településen
vkodhomlista = [ int(m[3]) for m in taviratok if m[0]==vkod]
atlagc = sum(vkodhomlista)/len(vkodhomlista)
atlagf = celsiusToFahrenheit(atlagc)
print('A középhőmérséklet {0} helyen: {1:.2f} C és {2:.2f} F'.format(vkod,atlagc,atlagf))
with open('atszamitva.txt','w',encoding='utf-8') as kimenetifajl:
for meres in taviratok:
ir = iranySzoveg(meres[2][0:3])
mpers = csomobolSzamit(int(meres[2][3:]))
hf = celsiusToFahrenheit(int(meres[3]))
kimenetifajl.write('{0} {1} {2} {3} {4} {5}\n'.format(meres[0],meres[1],ir,mpers,meres[3],hf))