Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Tietyn indeksin poistaminen listasta

koodia111 [21.02.2018 18:38:12]

#

Elikkäs pitäisi koodata tämmöinen ohjelma:

"Tee ohjelma, jossa käyttäjä voi (1) lisätä tuotteita listaan, (2) poistaa tuotteita listalta tai (3) lopettaa.

Mikäli käyttäjä lisää tuotteen listaan, pyytää ohjelma syötteen "Mitä lisätään?: ") ja laittaa sen listan viimeiseksi alkioksi. Jos käyttäjä haluaa poistaa tuotteen, kertoo ohjelma "Listalla on [määrä] alkiota", ja käyttäjä antaa syötteen "Monesko niistä poistetaan?", jonka jälkeen ohjelma poistaa numeronmukaisen alkion (0 on siis 1. alkio).

Jos käyttäjä lopettaa, tulostaa ohjelma "Listalla oli tuotteet:" ja listan sisällön kokonaisuudessaan allekkain. Virheelliseen valintaan reagoidaan tulostamalla rivi "Virheellinen valinta"."

Olen tästä saanut tämmöisen koodin aikaan:

lista=[]
while True:
    valinta = int(input("Haluatko\n(1) Lisätä listaan\n(2)Poistaa listalta vai\n(3)Lopettaa?: "))
    if valinta == 1:
        lisays=input("Mitä lisätään?: ")
        lista.append(lisays)
    elif valinta == 2:
        print("Listalla on ",len(lista)," alkiota.\n")
        poisto=int(input("Monesko niistä poistetaan?: "))
		if poisto > len(lista): // TÄMÄ EI TOIMI
			print("Virheellinen valinta") // JA TÄMÄ
        lista.pop(poisto)
    elif valinta == 3:
        print("Listalla oli tuotteet:")
        for i in lista:
            print(i)
        break
    else:
        print("Virheellinen valinta")

Elikkä ongelmana minulla on että en osaa laittaa tuohon koodipätkää valinta 2 kohdalle, jossa pitäisi saada virheellinen valinta ominaisuus jos näppäilee suuremman valinnan mitä listalla alkioita on... osaisiko joku auttaa minua tässä?? Kiitän teitä jo etukäteen..

Grez [21.02.2018 21:11:00]

#

Tuon ongelmakohdan pitäisi varmaankin olla

        // Koska laskeminen alkaa nollasta, niin pituuskin on jo liikaa
		if poisto >= len(lista):
			print("Virheellinen valinta")
        else:
            //Tehdään vain JOS valinta ei ollut virheellinen
            lista.pop(poisto)

koodia111 [21.02.2018 21:41:51]

#

En itse ainakaan saa tuolla toimimaan, kun en saa laitettua if ja else lauseita elif lauseen sisälle, niin että se toimisi..

Lisäys: anteeksi, toimihan se :D sisennykset olivat mulla väärin, kiitän!

Vastaus

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

Tietoa sivustosta