Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz XP NINJA #446 üzenetére

    Így első blikkre azért nem működött a második feladatod a függvényes módszerrel, mert nem is hívtad meg. A végén feladat_2 helyett feladat_2()-t kellett volna írni.

    Szerintem egyébként mindkét megoldás lehet jó, bár az ilyen egymásra épülő feladatoknál talán nagyobb "érettséget" sugall egy harmadik módszer: a kettő kombinációja. Ilyenkor folyamatosan adod hozzá a függvényeket, amik egy jól meghatározott funkciót hajtanak végre, ami nem feltétlenül esik egybe a (teljes) kiírásbeli feladattal. Ezeket pedig egy "fő programban" hívogatod meg szükség szerint.

    A példádban ott a 2. feladat, ami annak eldöntése, hogy foglalt-e egy hely, vagy sem. Ebből készíthetnél egy foglaltsag_ellenorzes(lista, x, y) nevű függvényt, ami csak annyit csinál, hogy megnézi a lista-t, hogy az x, y hely foglalt-e (igen/nem), majd a feladathoz kapcsolódva megcsinálod a "körítést". Pl:

    def foglaltsag_ellenorzes(lista, sor, szek):
    if lista[sor][szek] == "x":
    print("A szek foglalt")
    else:
    print("A szek ures")

    # 2. feladat
    sorszam = int(input("Adja meg a sor szamat: "))
    szekszam = int(input("Adja meg a szek szamat: "))
    foglaltsag_ellenorzes(lista, sorszam-1, szekszam-1)

    Ha már egyszer elkészült egy függvény, vagy megvan egy adat, akkor azt nem kell ismételni. Mondjuk a hármas példában feleslegesen olvasod be újra a foglaltsag.txt fájlt, hiszen azt már az első feladatnál megtetted. De ahhoz is lehetne egy sima fajl_beolvasas(fajlnev) függvényed, aminek csak a fájl listába olvasása lenne a dolga.

    Két további megjegyzés a beolvasáshoz: jobb lenne mindezt a with kifejezéssel megtenni, ami automatikusan zárja is a fájlt. A másik, hogy szerintem felesleges a sorokat is külön listaelemekre bontani, hiszen egy-egy sor az tulajdonképpen egy sztring, ami eleve karakterenként indexelhető. Pl.:

    def fajl_beolvasas(fajlnev):
    with open(fajlnev, "r") as f:
    lista = [line.strip() for line in f]
    return lista

    lista = fajl_beolvasas("foglaltsag.txt")

Új hozzászólás Aktív témák