def ll(): lisattava = str(raw_input("lisattava: ")) lista.append([lisattava]) print "sana " & lisattava & " on lisatty listaan" return 0 def ml(): print "Muokkaa listaa (tata ei ole viela toteutettu!!)" return 0 def tl(): varma = str(raw_input("Oletko varma etta haluat tyhentaa listan? (y/n)")) if varma == y: lista = [""] else: print "listaa ei tyhjennetty" return 0 def lista(): lista.sort print lista[0] return 0 lista = [] print "|||||||||||||||||||||||||||||" print "|| Tama on lista-harjoitus ||" print "|||||||||||||||||||||||||||||" print "1) Listaa listan loppuun" print "2) Muokkaa listaa" print "3) Tyhjenna lista" print "4) Tulosta lista" i = int(raw_input("Valinta: ")) if i == 1: ll() elif i == 2: ml() elif i == 3: tl() elif i == 4: lista()
eli tuommonen ja kuten arvata saattoi se ei toimi.
mitä vikaa yllä olevassa koodissa on?
ja ideoita että miten "Muokkaa listaa" vois tehdä.
Tässä on toimiva koodi:
def ll(lista): lisattava = str(raw_input("lisattava: ")) lista.append(lisattava) print "sana " + lisattava + " on lisatty listaan" return lista def pl(lista): print "Poista listasta" return lista def ml(lista): print "Muokkaa listaa" return lista def tl(lista): varma = str(raw_input("Oletko varma etta haluat tyhentaa listan? (y/n)")) if varma == 'y': lista = [] else: print "listaa ei tyhjennetty" return lista def tu(lista): lista.sort print lista lista = [] i = 0 print "|||||||||||||||||||||||||||||" print "|| Tama on lista-harjoitus ||" print "|||||||||||||||||||||||||||||" while i <> 6: print "1) Listaa listan loppuun" print "2) Poista listasta" print "3) Muokkaa listaa" print "4) Tyhjenna lista" print "5) Tulosta lista" print "6) Lopetus" i = int(raw_input("Valinta: ")) if i == 1: lista = ll(lista) elif i == 2: lista = pl(lista) elif i == 3: lista = ml(lista) elif i == 4: lista = tl(lista) elif i == 5: tu(lista)
Huomioi seuraavat:
1. Jotta listan tiedot säilyisivät muistissa, listan täytyy olla funktion parametri ja palautusarvo.
2. Merkkijonoja yhdistetään +-merkillä, ei &-merkillä.
3. Tyhjä lista on [], ei [""], appendissa ei hakasulkeita tarvitse käyttää.
Mutta kun tulostaa listan niin miten sais että ei tulis hakasulkuja sa pilkkuja ja sisälltöt tulisivat allekkain?
Vaikkapa näin:
for tieto in lista: print tieto
Nopeaa vastailua! No kiitos vastauksista, autto paljon.
Aihe on jo aika vanha, joten et voi enää vastata siihen.