apua aloittelijalle python

OsQ

Liittynyt
14.11.2016
Viestejä
99
Minne asti oot päässy? Oletko luonut ton Employee-luokan ja sille noi kaksi jäsenmuuttujaa?
 

OsQ

Liittynyt
14.11.2016
Viestejä
99
Miks toi lista on luokan sisällä? Eikö sen pitäis olla pääohjelmassa johon ne yksittäiset oliot lisätään?

Ite tekisin niin että luokan konstruktorissa annetaan vaan merkkijonona nimi ja se id. Sit pääohjelmassa tekis silmukan jossa on se varsinainen logiikka sen listan luomiseksi.
 
Liittynyt
17.10.2016
Viestejä
41
Ensimmäisen esimerkin luokkamäärittely on melkein oikein. Laita name ja id __init__ -metodin inputeiksi ja tallenna ne siellä olion muuttujiksi, eli self.id = id ja self.name = name. Pääohjelmassa whilen sisällä sitten pyydät nimeä ja tarkistat onko se "0", jos ei, niin luot uuden olion eli
tyontekija = Employee(nimi, id) ja lisäät sen listaan lista.append(tyontekija). Lopuksi lisätään id-laskuriin yksi. Jos saadaan lopetussyöte, lopetetaan while-looppi ja lopuksi käydään lista läpi for-loopilla, jossa kutsutaan jokaisen listan jäsenen tuloste-metodia.
 
Liittynyt
17.10.2016
Viestejä
5 395
Eikös tuossa for-silmukan sisällä ole tuo print turhaan kun se on jo tuolla luokassa (tuloste-metodissa)?
 
Liittynyt
17.10.2016
Viestejä
5 395
Pistänpä tähän tuon poistetun koodin ennen viimeisiä korjauksia kuitenkin näkösälle. Otin kopion kun piti kurkata mikä siinä vielä oli vikana mutta näinkin vian jo ennen kun edes kokeilin sitä. Jääpä edes jotain jälkipolville...
Koodi:
class Employee:

    def __init__(self, name, id):
        self.name = name
        self.id = id

    def tuloste(self):
        print(f"Id: {self.id} Nimi: {self.name}")

def main():
    lista = []
    id = 0
    while True:
        name = input("Anna työntekijän nimi: (0 lopetus): ")
        if name != "0":
            tyontekija = Employee(name, id)
            lista.append(tyontekija)
            id = id + 1

        elif name == "0":
            break

    for i in lista:
        print(i.tuloste())

if __name__ == "__main__":
    main()
 
Toggle Sidebar

Uusimmat viestit

Statistiikka

Viestiketjut
239 651
Viestejä
4 197 349
Jäsenet
70 761
Uusin jäsen
aksl

Hinta.fi

Ylös Bottom