Iteration
Ibland behöver man upprepa exekveringen av t.ex. en beräkning. Med while upprepas koden som hör till while-satsen så länge ett logiskt uttryck är sant. Den kod som ingår i while-satsen ska skrivas med indrag.k = 1
k = 2
k = 3
k = 4
Ingår inte i while-satsen
Om det logiska uttrycket är falskt redan från början kommer inte koden i while-satsen att exekveras.
Ingår inte i while-satsen
Nästlade iterationer är möjligt. Tänk på att man i koden markerar med olika storlek på indragen till vilken iteration koden ingår. I koden nedan utnyttjar vi att om man multiplicerar en textsträng med ett positivt heltal så konkatenerar Sage kopior av textsträngen.
a bb
a bbb
a bbbb
a bbbbb
a bbbbbb
aa bbb
aa bbbb
aa bbbbb
aa bbbbbb
aaa bbbb
aaa bbbbb
aaa bbbbbb
aaaa bbbbb
aaaa bbbbbb
aaaaa bbbbbb
Med break kan vi avbryta en iteration.
a b
aaaa bbbb
Med continue hoppar man över resten av aktuellt iterationssteg.
a b
a bbbb
a bbbbbb
aa bbbb
aa bbbbbb
aaa bbbb
aaa bbbbbb
aaaa bbbb
aaaa bbbbbb
aaaaa bbbbbb
Då det i förväg är givet hur många iterationer man vill utföra kan man använda kommandot for istället.
k = 1
k = 4
k = 0
k = -10
k = Sage
k = -2
k = -1
k = 0
k = 1
k = 2
k = 0
k = 1
k = 2
k = 3
k = 4
k = 5
k = 6
k = 7
k = 8
k = 9
C
O
C
A
L
C
För större listor bör man använda xrange, som är lik range men som är anpassad att vara snabbare och mer minneseffektiv vid iterationer.
4999950000
Det går bra att itererar över en ordlista.
1
3
9
5
7
ett
tre
nio
fem
sju
k = 1 , v = ett
k = 3 , v = tre
k = 9 , v = nio
k = 5 , v = fem
k = 7 , v = sju
Även for-satser går att nästla och avbryta med break eller continue.