LOOPAR
Programmering 1

Mål
- Förstå vad loopar är och hur de är användbara
- Hur man använder for- och while-loopen för iteration
- Hur man avbryter en pågående loop
Loopar
Loopar används för att kunna köra ett block kod flera gånger. En iteration (=upprepning) är ett varv inuti en loop.

I denna kurs lär vi oss loopen för:
for
while
och
(de är snarlika, men lite olika syntax och användningsområden)
for-loopen
for loopen
Idén är att vi har en kollektion av data, något vi kan iterera över.
[40, 32, 73] # En lista med värden
"hello" # En text av flera bokstäver
range(1, 10) # Ett intervall
for loopen
I Python är syntaxen för for-loopar:
for item in iterable_object:
# do something with the item
- Ett itererbart objekt är en kollektion av värden: en lista, en sträng, ett intervall, etc.
- item kan döpas till vad du vill
- item refererar till värdet för nuvarande position i loopen
- for-loopen itererar alltså över varje värde och avslutar när den besökt samtliga positioner.
for loopen
for number in range(1,8):
# För varje nummer i intervallet
print(number)
Exempel
1
2
3
4
5
6
7
for loopen
numbers = [40, 32, 73]
for num in numbers:
# do something with the item
if num % 2 == 0:
print("Even!")
else:
print("Odd..")
Exempel
for loopen
for char in "hello":
# För varje bokstav i strängen
print(char)
Exempel
h
e
l
l
o
DEMO
for-loop!
while-loopen
while loopen
Så länge villkoret är sant utförs satserna i loopen. Loopen avbryts när villkoret är falskt.
while villkor:
sats(er)
while True:
# Update player position
while number > 0:
# print positive number
Exempel while-loop
i = 1 # Initiering av i
# Körs så länge villkoret är sant
while i < 7:
print(i)
i += 1 # Räknar upp ett steg för varje iteration
En loop som körs så länge i är mindre än 7
1
2
3
4
5
6
7
Exempel while-loop
secret = 12
guess_limit = 3
tries = 0
answer = None
while tries < guess_limit and answer != secret:
answer = int(input(f'Guess a number 1-20 '))
if answer == secret:
print(f'You Win! You Guessed it: {answer}')
else:
print(f'No, not {answer}!')
tries += 1
if answer != secret:
print(f'Sorry you lose! It was {secret}')
En loop som körs så länge villkoret är True.
I det här fallet så länge antal försök är mindre än 3 och användaren inte redan gissat rätt
Förändringsoperatorer
Förändringsoperatorer
Beskrivning | Operator | Exempel | Samma som | Om tal är 3, blir det |
---|---|---|---|---|
Uppräkning med 1 | += | tal += 1 | tal = tal + 1 | 4 |
Nedräkning med 1 | -= | tal -= 1 | tal = tal -1 | 2 |
Uppräkning med 5 | += | tal += 5 | tal = tal + 5 | 8 |
Nedräkning med 5 | -= | tal -= 5 | tal = tal -5 | -2 |
Multiplicera med 3 | *= | tal *= 3 | tal = tal * 3 | 9 |
Dividera med 2 | /= | tal /= 2 | tal = tal / 2 | 1.5 |
Enklare sätt att öka eller minska med 1 eller annat heltal.
DEMO while-loop!
Oändliga loopar
i = 1
while i > 0:
print(i)
i += 1
En loop som körs så länge uttrycket är sant (True). Om loopen saknar att hamna i falskt (False) blir loopen oändlig. Ett misstag från programmerarens sida 🤯
Vad händer här? 🤔
Avbryta en loop
Med break kan man avbryta en loop omedelbart.
while True:
command = input("Avbryt programmet med 'exit'")
if command == 'exit'
break
for x in range(1,100000):
print(x)
if x == 3:
break
Nästlade loopar
Nästlade loopar
# Antal rader
rows = 10
# Yttre loop
for i in range(rows):
# Inre loop
for j in range(i):
# Skriv ut tal med mellanrum
print(i, end=' ')
# Ny rad efter varje loop
print('')
Det går bra ha en loop i en loop, det kallas nästlade loopar.
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9
Programmering 1 Python - Loopar
By Sandra Larsson
Programmering 1 Python - Loopar
The hole shabang
- 231