7095 for-slingor med range

while-slingor med räknare kan skrivas som for-slingor med range. Exempel följer nedan.

Exempel 1

for i in range(5):
    print(i)

# skriver ut: 
# 0
# 1
# 2
# 3
# 4

Exempel 1 men while-slinga

i = 0
while i < 5:
    print(i)
    i = i + 1

Det är lätt att glömma den sista raden i = i + 1. Glöms raden blir det en evighetsslinga. I en for-slinga som kombineras med range kan det inte hända.

Exempel 2

for n in range(1, 4):
    print(n, n ** 2)

# utskrift:
# 1 1
# 2 4
# 3 9

Exempel 2 med while-slinga

Nedanstående kod ger samma utskrift som koden ovan. Ett vanligt fel i while-slingan är att glömma att räkna upp räknaren n. Med en for-slinga tillsammans med range så undviks detta fel.

n = 1
while n < 4:
    print(n, n ** 2)
    n = n + 1

Exempel 3

for i in range(7, 14, 2):
    print(i)

# utskrift:
# 7
# 9
# 11
# 13

Exempel 3 men med en while-slinga

i = 7
while i < 14:
    print(i)
    i = i + 2

För den nyfikne

Dokumentationen för range

Uppgift

1

Använd en for-slinga och range för att skriva ut:

A

0, 1, 2, 3, 4

B

3, 4, 5, 6, 7

C

4, 7, 10, 13, 16, 19

D

20, 25, 30, 35, 40

E

10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

Tips!

Dokumentationen för range

Jämförelse med andra språk

I andra språk som JAVA, C, C++, JavaScript finns det for-slingor med följande syntax.

// JAVA
for (int i = 0; i < 5; i = i + 1)
{
    System.out.println(i);
}

Denna typ av slinga saknas i Python.