Logga in för att kunna spara vad du har gjort.
<< Föregående
Hem
Nästa >>
VARNING! Fönstret är för smalt för att använda pythonlabbet.se fullt ut. Använd en enhet med tangentbord!

for-satsen

I det här avsnittet kommer du att lära dig

Iterera igenom lista med for

Att iterera genom en lista betyder att listan gås igenom element för element. Egentligen betyder iterera att upprepa och uttrycket kommer ifrån att vi upprepar samma sak för varje element i listan.

Syntaxen är for variabel in lista: där variabel är ett valfritt variabelnamn och lista är en lista. Intenderat nedanför skrivs koden som ska utföras för varje element.

Exempel

En enkel iteration av en lista där varje element skrivs ut.

lista = ['Grön', 'Röd', 'Blå']
for färg in lista:
    print(färg)

Exempel

Här visas hur vi kan testa varje element och som i exemplet räkna antalet element större än 10.

tal_lista = [44, -2, 19, 5, 30, 10]
antal = 0
for tal in tal_lista:
    if tal > 10:
        antal = antal + 1

print(antal)
    

I tidigare avsnitt har vi använt while för att iterera igenom en lista. Det fungerar lika bra men i fallet ovan där vi ska gå igenom hela listan är syntaxen smidigare med for. Vi ska snart se hur for är enkelt att använda när vi vill göra en upprepning ett visst antal gånger.

Logga in eller skapa konto för att spara dina framsteg och din kod.

Ändra i koden

Koden innehåller ett antal fel som behöver rättas till. Ändra så att koden skriver ut namnen som ligger före E i bokstavsordning.

-- Programmets utskrifter --

Iterera igenom en sträng

På samma sätt som det går att iterera igenom en lista går det att iterera igenom en sträng, tecken för tecken, med for.

Exempel

Iterera igenom alla tecken i en sträng.

sträng = 'Iterera mera'
for tecken in sträng:
    print(tecken)
  

Med hjälp av enumerate() kan vi också få en variabel som håller reda på vilken iteration i ordningen vi är på. Denna variabel fungerar alltså som en räknare och den börjar på 0 och räknas upp med ett för varje iteration. Exemplet nedan visar för strängar, men det fungerar bra på alla sorts objekt som det går att iterera över.

Exempel

Iteration med for och enumerate.

sträng = 'Iterera mera'
for i, tecken in enumerate(sträng):
    print('Index ' + str(i) + ': ' + str(tecken))
  

Logga in eller skapa konto för att spara dina framsteg och din kod.

Skapa

Skriv ett program som tar emot en sträng från användaren och sedan räknar ut hur många vokaler strängen innehåller. Skriv ut det antalet.

-- Programmets utskrifter --

Upprepningar med range()

Ibland vill vi upprepa samma kod ett fixt antal gånger och då passar funktionen range() bra. Enklaste syntaxen är for variabel in range(n): där variabel är räknarens variabelnamn och n är antalet upprepningar.

Exempel

Upprepning av samma kod tre gånger.

for i in range(3):
    print('Python!')
  

Exempel

I det här exemplet ser vi hur räknaren ändras för varje iteration. Observera att den startar på 0.

for i in range(3):
    print(i)
  

Vi kan välja vad range() ska börja på genom att använda två argument. Första argumentet är vad intervallet startar på och det andra argument är hur långt räknaren ska gå (ej inkluderande). Till exempel innebär range(1, 10) värden från 1 till 9. Tänk på att värdet i det andra argumentet alltså inte ingår i intervallet.

Exempel

Räknare med variabelnamn i som startar på 1 och slutar på 9.

for i in range(1, 10):
    print(i)
  

Det går faktiskt att använda tre argument också. Det tredje argumentet står för steglängden. Till exempel innebär range(1,10,2) att vi börjar på 1 och sen går vi två steg för varje iteration, i den andra iterationen är värdet 3 och i den sista är värdet 9. Det går också att använda negativa steglängder för räknaren ska gå baklänges.

Exempel

Exempel på att använda range() med tre argument.

for i in range(10, 51, 10):
    print(i)

for i in range(5, 0, -1):
    print(i)
  

Logga in eller skapa konto för att spara dina framsteg och din kod.

Vad gör koden?

Läs koden nedan och försök lista ut vad programmet skriver ut. Kör programmet efter du svarat och se om du fick rätt.

-- Programmets utskrifter --

Fråga: Vad kommer programmet ovan att skriva ut?

1
2
1
2
1
4

Nästlade for-satser

Det är vanligt att använda en for-sats inuti en annan for-sats, så kallade nästlade loopar. Det fungerar bra med while också.

Exempel

Två nästlade for-loopar som skriver ut alla kombinationer av två listor.

färger = ['blå', 'gul', 'rosa']
saker = ['väska', 'bil', 'hus']

for färg in färger:
    for sak in saker:
        print(färg + ' ' + sak)

Exempel

Två nästlade for-loopar som skriver ut alla 36 kombinationer av två tärningskast.

for t1 in range(1,7):
    for t2 in range(1,7):
        print(str(t1) + ', ' + str(t2))

Logga in eller skapa konto för att spara dina framsteg och din kod.

Ändra i koden

Ändra i koden så att endast tärningskasten som har en summa av 10 skrivs ut.

-- Programmets utskrifter --
Status
Du har inte gjort klart någon uppgift än (0 st).