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í.