En kort repetition om loopar

Inför diagnosen körde jag en repetition av iterationer och hur vi kan styra detta på olika sätt. Här nedan finns de koden som producerades under lektionen, något omskriven.

"""
Saker att hålla koll på
* for-loopen
* while-loopen
* Nästlade loopar
* else
* break
* continue
"""
# For-loopen
# Här går jag igenom hur looparna fungerar med ...
# ... en parameter (antal varv iterationen körs)
print("\n### 1")
for i in range(5):
    print(i)

# ... två parametrar (startvärde, stoppvärde)
print("\n### 2")
for i in range(5, 10):
    print(i)

# ... tre parametrar (startvärde, stoppvärde, steglängd)
print("\n### 3")
for i in range(10, 21, 2):
    print(i)

# ... tre parametrar med negativ steglängd (startvärde, stoppvärde, steglängd)
print("\n### 4")
for i in range(19, 10, -3):
    print(i)

# Det går att använda variabler som parametrar och även beräkningar
print("\n### 5")
a = 2
b = 10
c = 3
for i in range(3*a, b, c):
    print(i)

## While-loopen
# När vi kör whileloopen så är villkoret avgörande
print("\n### 6")
antal = 0
while antal < 3:
    print("Hej!")
    antal += 1

# Samma som ovan men med for-loopen. I detta exemplet for-loopen att föredra
# då vi vet hur många gånger iterationen skall köras.
print("\n### 7")
for i in range(0, 3, 1):
    print("Hej! for")

# Praktisk övning med while, här vill vi veta hur många år det tar för
# pengarna att dubblas om räntan är 5%.
print("\n### 8")
startpengar, pengar = 1000, 1000        # Om vi vill minska antalet rader.
år = 0
ff = 1.05
while pengar < 2*startpengar:
    pengar *= ff
    år += 1
print(f"Efter {år} år har jag {pengar:.2f}kr.")

# Nästlade iterationer, alltså loop i loop.
# Testa att byta ut {j} mot {i} och {i*j}, vad händer då?
print("\n### 9")
for i in range(10):
    for j in range(10):
        print(f"{j}", end="")
    print()

# continue och else
print("\n### 10")
for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i)
else:
    print("Loopen är klar, i har värdet", i)

# break och else
print("\n### 11")
for i in range(1, 11):
    if i % 2 == 0:
        break
    print(i)
else:
    print("Loopen är klar, i har värdet", i)

Lämna ett svar

Din e-postadress kommer inte att publiceras.

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.