5 svar
158 visningar
villsovaa är nöjd med hjälpen
villsovaa 911
Postad: 21 okt 2021 22:29 Redigerad: 21 okt 2021 22:30

Uppdatera lista

Hej!

Så om jag har en while-loop med flera olika villkor, och jag lägger till ett element i listan i villkor ett. I villkor två kan jag välja att ta bort elementet ur listan. Om jag sedan går tillbaka till element ett så ska listan alltså ha uppdaterats. Hur får man till det? Notera att villkoren väljs med hjälp av input, och att alla villkor står under varandra i en while-loop. Jag har gjort att exempelvis villkor två är tabort = input("skriv vilket nummer i listan du vill ta bort")

och sen: lista.remove(tabort)

Men när jag går till villkorssats nummer tre som visar hur listan ser ut just nu så får jag fel, och att man inte kan ändra en "Nonetype object" på detta sätt. Varför blir det så?

Lindehaven 820 – Lärare
Postad: 21 okt 2021 23:36

Visa koden så är det enklare att förstå och förklara.

villsovaa 911
Postad: 22 okt 2021 17:24 Redigerad: 22 okt 2021 17:58
Lindehaven skrev:

Visa koden så är det enklare att förstå och förklara.

 antalbilar = int(input("Hur många bilar ska rapporteras?: "))
            while count < antalbilar:
                regnummer = input("mata in registreringsnummer i formatet ABC123 eller ABC12A: ")
                if len(regnummer) != 6:
                    system("clear")
                    print("felaktigt registreringsnummer")
          
                system("clear")
                print("registreringsnumret", tabort, "är nu borttaget ur registret")
            else:
                print("Bilen fanns inte ens i registret.")

Så jag fyller först i stulna bilar när jag trycker på 1, sen kan jag ta bort en bil när jag trycker på fyra. Då borde listan uppdateras. Men när jag trycker på 3 för att se vilka bilar som är stulna idag i listan så har inte borttagandet av en viss bil synts, och det står att "nonetype object is not iterable". Varför uppdateras inte listan? 

Laguna Online 28563
Postad: 22 okt 2021 17:37

Har du kollat vad remove-metoden returnerar?

villsovaa 911
Postad: 22 okt 2021 17:45
Laguna skrev:

Har du kollat vad remove-metoden returnerar?

Jag testade så här:

a = ["hej"]
a.remove("hej")
print(a)

och då tar den ju bort hej från listan. Så förstår inte varför den inte funkar. 

villsovaa 911
Postad: 22 okt 2021 17:55
Laguna skrev:

Har du kollat vad remove-metoden returnerar?

Ah vänta jag kom på det. Tack för hjälpen!!

Svara Avbryt
Close