for-satsen

En vanlig situation är att man vill upprepa några satser flera gånger. För detta använder man så kallade iterationssatser även kallade loopar.

Python har två olika sådana: while- och for-satserna. Här beskrivs for-satsen.

Observera: Exemplen här är avsedda att beskriva just for-satsens funktion. Det innebär att det finns andra och ibland även på bättre sätt att lösa problemen på.

for-satsen är orienterad mot att låta en variabel successivt få ett antal olika värden.

Exempel 1: Gå igenom en lista med strängar.

Antag att vi har en lista med namn och vill skriva ut en personlig hälsning till dessa.
guests = ['Anna', 'Eva', 'Lars', 'Anders'] for name in guests: print('Välkommen ' + name)

Exempel 2: Summera kvadraterna på talen i en lista.

Antag att vi vill summera kvadraterna på talen i en lista.
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23] sum = 0 for p in primes: sum += p*p print(f'Summan av de {len(primes)} ' + \ f'första primtalen är {sum}')

Exempel 3: Iteration över tecknen i en text.

Räkna antalet vokaler i en given text:
text = ''' Kvällen gullmoln fästet kransa älvorna på ängen dansa''' vowels = 'aeiouyåäö' nbr = 0 for c in text: # For each character in the sentence if c in vowels.lower(): # Check if it is in the vowel-string nbr += 1 print(f'Antal vokaler är {nbr}') # Will print 16

Exempel 4: Användning av range.

Antag att vi vill summera kvadraterna på heltalen mellan ett och tio.
sum = 0 for i in range(1,11): sum += i*i print(f'Summan är {sum}')

Uttrycket range(1,11) genererar heltalssekvensen 1, 2, 3, ..., 10 dvs från och med 1 upp till men inte med 11.

Allmänt om range

Även om det inte är tekniskt helt korrekt kan vi tänka oss att range är en funktion som genererar en lista av heltal.

Varianter Inkrementet i i den sista varianten kan vara negativt. Exempel:
for i in range(10, 0, -2): print(i, end=' ') print('\nDone')
ger utskriften
10 8 6 4 2 Done

Övningar

  1. Skriv satserna som skriver ut kvadraterna på de jämna talen mellan 2 och 30 med ett värde per rad.
  2. Skriv satserna som skriver ut alla tal mellan 1 och 100 som är jämnt delbara med 7.
  3. Skriv de satser som räknar hur många 6:or man får vi 100 kast med tärning.

Valid CSS!