Professional Documents
Culture Documents
Coding 112
Coding 112
Prva rekurzivna funkcija, ki smo jo programirali, je bila vsota. Smo jo morda sprogramirali tako?
def vsota(s):
v = 0
vsota(s[1:])
v += s[0]
return v
Ocena 7
Napiši funkcijo pot_do(odkod, kam, orbite), ki je podobna funkciji prestej_korake, vendar ne vrne števila
korakov temveč seznam lun na poti, vključno z odkod in kam. Funkcija naj ne bo rekurzivna. Rekurzivno različico
boš napisal za oceno 8.
>>> pot("J", "C", orbite)
["J", "E", "D", "C"]
Spet smeš predpostaviti, da pot, po kateri sprašuje funkcija, obstaja.
Rešitev
Tole je čisto isto kot štetje korakov, le da zlagamo lune v seznam, ki ga na koncu vrnemo.
def pot_v_niz(pot):
return " -> ".join(pot)
Če vemo o Pythonu kaj več, pa funkcijo kar priredimo. Celotna rešitev naloge je lahko kar.
Klic navodila("F -> E -> D -> C -> B", "pot.txt") v datoteko pot.txt zapiše naslednje besedilo
Iz F pojdite na E.
Potem zavijte na D.
Potem zavijte na C.
Potem zavijte na B.
Vaš cilj, B, bo pod vami.
V prvi vrstici torej vedno piše "Iz ... pojdite na ...", v naslednji(h) pa "Potem zavijte na ...". Na koncu naj napiše, da
bo cilj pod vami.