Sintaksa je
if <condition>:
<block 1>
elif <condition>:
<block 2>
else:
<block 3>
Treba uočiti dvotočke prije blokova koda koji se uvjetno izvršavanju. Također je važno paziti na konzistentno uvlačenje blokova koda (tamo gdje bi u C-u bile vitičaste zagrade), jer je to jedina vodilja kompajleru da prepozna gdje su granice bloka. (Tradicionalno se uvlači za 4 mjesta. Editor u Sage ćelijama automatski radi to uvlačenje.) Npr:
sage: if 2>3:
....: print "veći je"
....: elif 2==3:
....: print "jednak je"
....: else:
....: print "manji je"
manji je
U uvjetima se mogu koristiti standardni logički operatori and, or, not, ..., a važno je uočiti da se test usporedbe jednakosti radi s dvostrukim znakom jednakosti ==. (Jednostruka jednakost = je rezervirana za operacije pridruživanja poput x=1.) Operatori uspoređivanja su standardni: ==, !=, <, <=, >, >=.
sage: if 2>3 or 2<3:
....: print "nisu isti"
nisu isti
while petlja ima standardni oblik
while <condition>:
<body>
gdje je condition logički uvjet. Npr.
sage: k = 1
sage: while k < 10:
....: print k,
....: k += 1
1 2 3 4 5 6 7 8 9
(Zarez nakon print naredbe sprečava automatski prelazak u novi red.)
For petlja ima specifičnu sintaksu
for x in <iterable>:
<body>
gdje je <iterable> lista, tuple, skup, rječnik, ... Za prijevremeno iskakanje iz petlje postoji komanda break. Npr. slijedeći algoritam pronalazi prvi cijeli broj čiji rastav sadrži više od pet različitih prostih faktora.
sage: for i in range(1,1e5):
....: if len(factor(i))>5:
....: break
sage: print i
30030
Alternativni i nešto elegantniji algoritam bi bio
sage: i = 1
sage: while len(factor(i))<6:
....: i +=1
sage: print i
30030
Zadatak 1
Isprogramirajte petlju koja će pomnožiti sve brojeve od 1 do 7 (dakle, izračunati će 7!). Riješite zadatak jednom koristeći for petlju, a drugi put while petlju.