Ha szét akarjuk szedni kisebb részekre a programot, vagy ha egy részprogramot többször is szeretnénk végrehajtani, szubrutint (saját függvényt, eljárást) készítünk.
def függvénynév(paraméter1,paraméter2,…):
utasítások
Kilépés, visszatérés a függvényből: return érték
(az érték el is maradhat, ha nem ad vissza értéket).
Pl. ha át akarunk váltani másodpercekre egy időpontot:
def mperc(ora, perc, masodperc):
return masodperc + 60*perc + 3600*ora
Beolvasás txt fájlból, helyközzel elválasztott adatok esetén: fajl = open(‘valami.txt’) forras = fajl.read().splitlines() fajl.close()
Ekkor a fájl minden sora a forras lista 1-1 eleme lesz. Ha a sorokban szóközzel elválasztott adatok vannak, így rakhatjuk ezeket az adatok listába:
adatok = [sor.split(‘ ‘) for sor in forras]
Ha pl. csak a 3. sortól kell az adatokat tárolni:
adatok = [forras[i1].split(‘ ‘) for i1 in range(2,len(forras))]
Vannak olyan esetek, amikor nem engedik beolvasni a teljes fájlt, mert túl nagy lenne, nem lehetne tárolni a memóriában. Ilyenkor soronként is végiglépkedhetünk a fájlon.
Fontos, hogy a read() a sorvégi \n karaktereket is beolvassa, ettől meg kell szabadulni.
Pl. a szoveg.txt fájl minden sorában egy-egy szó (és még egy \n karakter) van, és a leghosszabbat kell kiválasztani.
fajl = open(‘szoveg.txt’)
leghosszabb = ”
for sor in fajl:
fajl.close()
print(‘A leghosszabb szó:’,leghosszabb)
Fájl írásra megnyitása:
fajl = open(‘kepviselok.txt’,mode=’w’,encoding=’utf-8′)
Általában így használjuk: fajl = open(‘kepviselok.txt’,’w’)
Csak az utf-8-cal írja ki rendesen az ékezetes karaktereket!
Addig nem ír semmit a fájlba, amíg a fájlazonosító.close()
-zal le nem zárjuk.
Írás fájlba: print(valami, file=fájlazonosító)
, de a fájlazonosító.write(valami)
is működik.