Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Pyton: lista ongelma

ZcMander [23.12.2003 17:52:34]

#

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ä.

Antti Laaksonen [24.12.2003 15:05:18]

#

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ää.

ZcMander [24.12.2003 16:22:19]

#

Mutta kun tulostaa listan niin miten sais että ei tulis hakasulkuja sa pilkkuja ja sisälltöt tulisivat allekkain?

Antti Laaksonen [24.12.2003 16:26:26]

#

Vaikkapa näin:

for tieto in lista:
    print tieto

ZcMander [24.12.2003 16:35:59]

#

Nopeaa vastailua! No kiitos vastauksista, autto paljon.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta