-
V tomto videu
vám chci představit cyklus "for".
-
A udělám to tak,
že si napíšeme malý program,
-
který počítá faktoriál čísla.
-
Zopakujeme si nejdřív,
co faktoriál s čísly dělá.
-
Co znamená třeba "1 faktoriál"?
-
Většinou se to píše jako 1!
-
V tomto případě se to prostě rovná 1.
-
Když řeknete 2 faktoriál,
-
bude se to rovnat 2 krát 1.
-
Když řeknete 3 faktoriál,
-
bude to 3 x 2 x 1,
-
a to se rovná 6.
-
Takže faktoriál nějakého čísla
-
bude to dané číslo
vynásobené všemi menšími čísly
-
až do jedničky
-
Pojďme implementovat náš
program k výpočtu faktoriálu.
-
A způsob, jakým to udělám,
-
bude vložení od uživatele,
-
Vyzve to uživatele
-
k zadání čísla, jehož faktoriál chce vypočítat
-
a potom to faktoriál vypočítá.
-
A co udělám,
-
použiji funkci, kterou nám poskytuje Python.
-
A já v tomto videu používám Python 2.
-
Vy byste to mohly udělat trochu odlišně -
-
opravdu, budu o tom mluvit za chvíli -
-
když používáte Python 3.
-
Python 2 je to,
-
v čem je prováděna většina implementací v Pythonu,
-
v tomto videu.
-
Ale venku už je Python 3,
-
to je druh novější verze.
-
Trochu to vyjasním v budoucím videu.
-
Nicméně, budeme brát vložení od uživatele
-
a jdeme vyzvat zprávou.
-
Řekneme mu
-
"Vložte kladné číslo, abyste získali jeho faktoriál."
-
A takže
-
seznámíme se s funkcí.
-
Vložíme do funkce argument.
-
A argument, který vložíme do funkce,
-
do vkládací funkce přímo zde - je řetězec.
-
a "string" (řetězec) zní jako velmi komplikovaná "thing" (věc),
-
ale opravdu je to pouze řetězec znaků.
-
Můžete jej vidět jako houf znaků.
-
To představí tento text uživateli,
-
a poskytne mu to malé vkládací pole.
-
A uživatel do toho pole něco napíše.
-
Vyhodnotí to, co je ve vkládacím poli
-
a potom, můžete se na to buď podívat,
-
že to odkazuje na proměnnou,
-
nebo vložit do proměnné číslo,
-
v závislosti na tom, jak si chcete proměnnou představit.
-
Pokud používáte Python 3,
-
zavoláte "eval" (hodnotu),
-
která vrátí hodnotu této funkce.
-
To je když používáte Python 3.
-
Já právě teď používám Python 2.
-
A jestli chcete dělat přesně to, co dělám já,
-
já používám PyScripter IDE -
-
Integrated Development Environment (vývojářské prostředí).
-
To je volně dostupný open-source projekt na počítač.
-
Ale je tu mnoho, mnoho způsobů jak můžete editovat Python.
-
Můžete to dělat klidně v jakémkoliv textovém editoru.
-
Takže, zatím vše co jsme udělali je, že jsme vzali vloženou hodnotu od uživatele
-
a dali jsme ji do proměnné.
-
To, co je na Pythonu opravdu fajn je,
-
že můžeme tento program nechat běžet
-
a prostě sledovat, co se stane.
-
Tak to pojďme udělat.
-
Uložit to a jdu ho spustit.
-
Toto malé tlačítko "play" běží v tomto IDE.
-
A jak jsme říkali, navádí to uživatele:
-
"Vložte kladné číslo, abyste získali jeho faktoriál."
-
Takže nevím - napíšu 10.
-
A klikám OK. Nic se nestalo.
-
Jasně, samozřejmě se nic nestalo,
-
protože já jsem opravdu neurčil nic, co by se mělo stát.
-
Ale když jsme napsali číslo,
-
uvidíme, že je teď zadaná 10.
-
Proměnná teď odkazuje na číslo 10.
-
Takže teď můžeme použít toto číslo a vypočítat jeho faktoriál.
-
Takže co udělám -
-
a jdeme to udělat opětovně -
-
povíme si více o tom,
-
co se stane v budoucnosti.
-
Takže já definuji další proměnnou pojmenovanou "product".
-
Nastavím "product" na 1.
-
Co uděláme je to,
-
že začneme od 1 nahoru k jakémukoliv číslu
-
a zachováme násobení productu
-
každým postupně větším číslem.
-
Takže jdeme začít.
-
Takže zadám tady cyklus "for".
-
V dalším videu to krok po kroku vysvětlím,
-
co přesně cyklus "for" dělá.
-
Snažíme se - kromě cyklu "for" -
-
snažíme se definovat proměnnou i.
-
To je klasická proměnná definovaná v cyklu "for".
-
A tato proměnná bude
-
udržovat inkrementaci (přičítání 1) k vyšším a vyšším hodnotám.
-
přes které půjdeme.
-
Takže "for i in range" (proměnná i v rozsahu cyklu).
-
A cyklus "for" je v Pythonu trochu odlišný než
-
když jste dělali v Javascriptu nebo Javě.
-
Udělám další video, ve kterém si to vysvětlíme.
-
Ale "range of number" (rozsah čísel) -
-
a k porozumění tomu, co je rozsah čísel,
-
poskytuje seznam čísel od 0
-
až k o 1 menšímu číslu než je toto.
-
Takže zde jsme již definovali, co je to za číslo,
-
je to číslo 10.
-
Takže když napíšu v rozsahu 10 - nebo mě nechtě dělat řadu čísel.
-
To mi dá seznam od 0 do 9
-
- ta je o 1 menší než 10.
-
A to je to stejné jako "range of 10" (rozsah 10).
-
A co tento cyklus "for" dělá je,
-
že přiřadí toto "i" každému členu pořadí.
-
Začne s 0 - nebo každým členem z tohoto seznamu.
-
Začne s 0 a potom udělá
-
cokoliv, co mu řekneš, aby udělal, v cyklu "for", když je "i" rovno 0,
-
potom to přiřadí "i" hodnotu 1.
-
Pardon. Na začátku bude "i" 0, potom se bude rovnat 1,
-
potom se bude rovnat 2, potom 3 - a tak dále -
-
pořád dokud budeš chtít, pořád napříč seznamem čísel.
-
A takže co tady chceme udělat je -
-
kromě cyklu "for"
-
chceme znovu definovat product,
-
tak, aby se rovna productu (předchozímu productu).
-
Takže náš nový product bude náš starý product
-
a já ho vynásobím i + 1.
-
Budeme to opatrně procházet dále ve videu.
-
Ale já chci, abyste přemýšleli o tom, co už je uděláno.
-
Dobře, když začneme,
-
řekněme, že číslo končí jako 3.
-
Takže product nastavíme jako 1.
-
A řekneme "for i in range".
-
Potom, když děláme "range of 3",
-
prvně bude "i" nula.
-
A vezmeme...
-
náš starý product - takže 1 - vynásobíme ho i + 1.
-
Dobře i je nula, takže 0 + 1 je 1.
-
Tak to bude 1 x 1, což bude 1.
-
Potom bude mít "i" hodnotu 1.
-
To je to, co dělá cyklus "for".
-
Opakuje. Udržuje inkrementaci (zvyšování).
-
Dobře, ne vždycky dělá inkrementaci.
-
Prostě udržuje změnu hodnoty proměnné "i",
-
když jde napříč seznamem hodnot.
-
A takže dále je náš product 1.
-
Ale teď je 1, takže 1 + 1 = 2, vynásobeno 1 je 2.
-
A potom - potom bude hodnota nastavena na 2.
-
Takže to bude 2 + 1 ...
-
vynásobeno tím, jako hodnotu měl produkt od minulého opakování - to bylo 2.
-
A takže to bude 2 x 3 a to je 6.
-
A když jsme to nakonec udělali s tímto cyklem "for"
-
uvnitř productu -
-
nebo hádám, že jsme řekli, že product bude odkazovat na
-
aktuální faktoriál vloženého čísla.
-
Tak teď můžeme říct "print product" (vypiš product).
-
A v Pythonu - v tomto zdejším případě -
-
interpret ví, jak zastavit cyklus "for"
-
když běží, k určení "i".
-
Takže to je důvod proč to neběží donekonečna.
-
Takže, pojďme se podívat, co jsme udělali.
-
Podívejme se, jestli to skutečně funguje.
-
Podívejme - skutečně - vypíše toto.
-
Pojďme se podívat, jestli tato věc skutečně funguje.
-
Takže uložím to. A potom to pustím.
-
A požaduje to po mně:
-
"Vložte kladné číslo, abyste získali jeho faktoriál."
-
Takže zkusme to s 3. - Enter.
-
To mi dá správnou odpověď.
-
Zkusme to znovu.
-
Takže, "Vložte kladné číslo, abyste získali jeho faktoriál."
-
Nevím, zkusme něco většího: 10.
-
Funguje to. Předpokládám, že si to můžete sami ověřit.
-
Takže co jsme udělali je to, že jsme napsali velmi jednoduchý program.
-
Ale dělá něco opravdu pěkného -
-
vypočítá faktoriál libovolného čísla.
-
V dalším videu
-
se podíváme mnohem více podrobněji,
-
způsobem, který vás zmate - co dělá cyklus "for".
-
Takže, držte se se mnou i v dalším videu a sledujte to.
-
Má to trochu více opatrné vysvětlení.