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
Made with Slides.com