3. Listor och Anrop

Programmeringsteknik

(Skillnad mellan versioner)
Hoppa till: navigering, sök
(Hur använder man en lista?)
(Hur använder man en lista?)
Rad 59: Rad 59:
<p>Raden ovan skrivet ut värdet som finns på tredje platsen i listan.</p>
<p>Raden ovan skrivet ut värdet som finns på tredje platsen i listan.</p>
 +
 +
<span style="color:red">[FRÅGOR]</span>
<h2>Vad är en lista?</h2>
<h2>Vad är en lista?</h2>
<p>En lista är variabel som kan ha flera värden. Varje värde får ett eget index (nummer) som kan användas för åtkomst eller modifiering av värdet. Om en vanlig variabel fungerar som en stol så fungerar en lista som en bänkrad i en biograf när det är numrerad placering. Telefonnummerlistan i din mobil är ett exempel på en lista.</p>
<p>En lista är variabel som kan ha flera värden. Varje värde får ett eget index (nummer) som kan användas för åtkomst eller modifiering av värdet. Om en vanlig variabel fungerar som en stol så fungerar en lista som en bänkrad i en biograf när det är numrerad placering. Telefonnummerlistan i din mobil är ett exempel på en lista.</p>

Versionen från 25 juni 2007 kl. 09.56

Innehåll

Listor

Oftast är den som skriver ett program dvs programmeraren inte den som kommer att använda det. Den som skriver programmet har kunskap om programmering men man ställer inga krav om kunskap i programmering för den som ska använda programmet. Detta gör att programmeraren måste skriva programmet på ett sätt så att den kan köras av olika användare med olika förväntningar.

Antag att vi vill skriva ett program som ska läsa in fem stycken namn och när man har matat in alla fem namnen skrivs de ut i omvänd ordning (dvs sista namnet först).

Med den programmeringskunskap du har idag är detta fullt möjligt. Det är bara att använda sig av fem olika variabler för att lagra namnen och sedan skriva ut dem i omvänd ordning, som programmet nedan:


Python
namn1= raw_input("Ange ett namn: ")
namn2= raw_input("Ange ett namn: ")
namn3= raw_input("Ange ett namn: ")
namn4= raw_input("Ange ett namn: ")
namn5= raw_input("Ange ett namn: ")
print namn5, namn4, namn3, namn2, namn1

Programmeraren har bestämt att 5 och endast 5 namn ska matas in. Programmet fungerar varken för färre eller fler antal namn.

Det vore bättre om programmet ställer en fråga om hur många namn som ska matas in i början av programmet och användarens svar på denna fråga avgör om hur många variabler som ska användas till att lagra alla namn. Men programmeraren kan fortfarande inte veta hur många variabler som ska användas eftersom att olika användare kommer att kunna mata in olika antal namn. Hur ska programmeraren göra?

Svaret är att använda en lista.

Vad är en lista?

En lista är variabel som kan ha flera värden. Varje värde får ett eget index (nummer) som kan användas för åtkomst eller modifiering av värdet. Om en vanlig variabel fungerar som en stol så fungerar en lista som en bänkrad i en biograf när det är numrerad placering. Telefonnummerlistan i din mobil är ett exempel på en lista.

Hur använder man en lista?

Listor skrivs med hjälp av klamrar []


Python
namnlista=3*[None]

[BILD]

namnlista blir då en variabel som har plats för 3 olika värden. None betyder att alla platserna ska vara lediga. Om man vill tilldela första platsen i variabeln ett värde t ex talet 47 gör man på följande sätt:


Python</div>namnlista[0]=47

[BILD]

I ovanstående rad är namnlista namnet på listan. [0] specificerar avsedd plats i listan, 0 är ett index som används för specificera första plats. =47 som vi vet sedan tidigare är en tilldelningssats. Hela raden gör att första plats i listan får värdet 47. Programmerare är lite lustiga på det sättet att 0 betyder första plats i en lista. Detta gäller i flera programspråk, t ex Java och C++.

Om man vill tilldela andra plats i listan ett nytt värde t ex "hej" använder man därför indexet 1:


Python
namnlista[1]="hej"

[BILD]

För att skriva alla värden som finns i listan kan man skriva som nedan:

Python
print namnlista

Om man endast vill skriva ut värdet på en specifik plats i vektorn får man använda sig av klamrar igen:

Python
print namnlista[2]

Raden ovan skrivet ut värdet som finns på tredje platsen i listan.

[FRÅGOR]

Vad är en lista?

En lista är variabel som kan ha flera värden. Varje värde får ett eget index (nummer) som kan användas för åtkomst eller modifiering av värdet. Om en vanlig variabel fungerar som en stol så fungerar en lista som en bänkrad i en biograf när det är numrerad placering. Telefonnummerlistan i din mobil är ett exempel på en lista.