Naposledy aktualizováno: 08/12/2023 23:19:46
Zpět na přehled knih.70_INP
70_WRD
70_Demo_App.pyz
Game.pyw
Dotaz:
Nedaří se mi rozchodit robota Karla ani další dodané skripty.
Odpověď:
Příčinou neúpspěchu je většinou to, že jste Python nebo IDLE spustili v jiné složce,
než v té, v níž máte uložené stažené soubory. To si musíte vždy ohlídat.
Jak ve Windows připravit zástupce, který bude správně spouštět IDLE, si můžete přečíst
v příloze, která je zde na stránce ke stažení.
Při spouštění interpretu z příkazové řádky se musíte nejprve přesunou do složky
se staženými programy, do její podsložky 70_INP
, a spustit Python zde,
jak je to předvedeno v učebnici na straně 34 na obrázku 1.2.
Máte-li již Python spuštěný a chcete se přesvědčit, zda je spuštěný ve správné složce,
zadejte příkazy import os; os.getcwd()
po jejichžt zadání vám interpret vypíše aktuální složku
(Current working directory – proto getcwd).
Kdybyste chtěli aktuální složku změnit, zavolejte funkci
os.chdir('cesta/ke/správné/složce')
,
kde jako argument zadáte cestu k příslušné složce, v našem případě ke složce 70_INP
,
resp. k jejímu případnému přejmenovanému ekvivalentu.
Nezapomeňte v zadávaném stringu používat dopředná lomítka.
Pokud byste používali zpětná, museli byste je zdvojit.
Pokud jste ve stažených souborech nic neměnili, mělo by to po nastavení
správné akuální složky vše bez problému chodit.
Dotaz:
Začínám programovat v jazyku Python na straně 88 píšete o pozičních, pojmenovaných
a implicitních argumentech. Můj dotaz je:
Jaký je rozdíl mezi pojmenovaným a implicitním argumentem?
Podle hledání na Internetu to vypadá, že mezi nimi v podstatě rozdíl není.
Odpověď:
V poznámce na straně 89 jsem se to sice snažil vysvětlit, ale asi to nebylo dostatečně.
Zkusím to tedy ještě jednou:
Problém poziční versus pojmenovaný spočívá v tom, jestli při volání dané funkce
budete vedle výrazu představujícího daný argument zadávat i jméno parametru, který bude hodnotou
tohoto argumentu inicializován.
Jak jsme si na straně 89 vysvětlili v pasáži Povinně poziční a povinně pojmenované argumenty
u některých argumentů nemáte na vybranou. U těch ostatních je ale způsob zadání na vašem rozhodnutí.
Naproti tomu rozdíl mezi pojmenovaným a implicitním argumentem spočívá v tom, jestli jej musíte zadat.
Argumenty inicializující parametry, které jsou v hlavičce funkce uvedeny i se svojí implicitní hodnotou,
zadávat nemusíte, a pro inicializaci příslušného parametru se pak použije ona implicitní hodnota
kterou označujeme jako implicitní argument.
Termín pojmenovaný argument pak hovoří pouze o tom, že jste v rámci zadávání argumentu
zadali i název parametru, který bude hodnotou tohoto argumentu inicializován.
true
a false
jsou chybně uvedeny s malým počátečním písmenem.
True
a False
mají být uvedeny s velkým počátečním písmenem.
>>> turn_left(k), is_wall(k) # Nyní má před sebou volno
(Karel_1(row=0, col=0, dir4=SOUTH, color=BLUE), False)
....................
>>> turn_left(k), is_east(k) # Po otočce hledí na východ
(Karel_1(row=0, col=0, dir4=EAST, color=BLUE), True)
>>> turn_left(k); turn_left(k); turn_left(k) # Pomalá otočka vpravo
Karel_1(row=0, col=0, dir4=NORTH, color=BLUE)
Karel_1(row=0, col=0, dir4=WEST, color=BLUE)
Karel_1(row=0, col=0, dir4=SOUTH, color=BLUE)
....................
>>> k; turn_right(k) # Rychlá otočka vpravo
Karel_1(row=0, col=0, dir4=SOUTH, color=BLUE)
Karel_1(row=0, col=0, dir4=WEST, color=BLUE)
turn_about()
) a pak couvne.
>>> k # Začínáme na závěrečné pozici předchozího výpisu
Karel_1(row=0, col=0, dir4=WEST, color=BLUE)
>>> step_back(k); turn_about(k); step_back(k)
Karel_1(row=0, col=1, dir4=WEST, color=BLUE)
Karel_1(row=0, col=1, dir4=EAST, color=BLUE)
Karel_1(row=0, col=0, dir4=EAST, color=BLUE)