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)
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
I Python är syntaxen för for-loopar:
for item in iterable_object:
# do something with the item
for number in range(1,8):
# För varje nummer i intervallet
print(number)
Exempel
1
2
3
4
5
6
7
numbers = [40, 32, 73]
for num in numbers:
# do something with the item
if num % 2 == 0:
print("Even!")
else:
print("Odd..")
Exempel
for char in "hello":
# För varje bokstav i strängen
print(char)
Exempel
h
e
l
l
o
DEMO
for-loop!
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
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
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
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!
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? 🤔
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
# 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