Interaktivní režim Pythonu

Chceš-li si začít hrát s Pythonem, otevři příkazový řádek a aktivuj virtuální prostředí. Zkontroluj si, že na začátku příkazové řádky ti svítí (venv).

Je-li tomu tak, nezbývá než – konečně – pustit Python. K tomu použij příkaz python:

$ python
Python 3.6.6 (...)
Type "help", "copyright", "credits" or "license" for more information.
>>>

Příkaz vypíše několik informací. Z prvního řádku se můžeš ujistit, že používáš Python 3. (Vidíš-li číslo jako 2.7.11, něco je špatně – popros o radu kouče.)

Třemi „zobáčky“ >>> pak Python poprosí o instrukce. Je to jako v příkazové řádce, ale místo příkazů jako cd a mkdir sem budeš psát příkazy Pythonu.

Vyzkoušej si, že příkazy z příkazové řádky v Pythonu nefungují, ačkoli okýnko vypadá skoro stejně:

>>> whoami
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'whoami' is not defined

Tohle je chybová hláška, která se objeví vždycky, když Python nebude spokojený. V průběhu kurzu jich uvidíš ještě spoustu, takže si ji dobře prohlédni, ať ji příště poznáš.

První příkaz

Jako první instrukci použijeme Pythonu jako kalkulačku. Za tři zobáčky napiš třeba 2 + 3 a zmáčkni Enter.

>>> 2 + 3
5

Zobrazila se ti správná odpověď? Pokud ano, gratuluji! První příkaz v Pythonu máš za sebou.

Zkusíš i odečítání?

A jak je to s násobením? Na kalkulačce bys zadala 4 × 5, což se na klávesnici píše špatně. Python proto používá symbol *.

>>> 4 * 5
20

Symboly jako + a * se odborně nazývají operátory.

Operátor pro dělení je /.

Při dělení může vzniknout necelé číslo, třeba dva a půl. Python používá desetinnou tečku, ukáže se tedy 2.5:

>>> 5 / 2
2.5

Z důvodů, do kterých teď nebudeme zabíhat, se při dělení desetinná tečka objeví i když vyjde číslo celé:

>>> 4 / 2
2.0

Občas se hodí použít dělení se zbytkem. Výsledek tak zůstane jako celé číslo. Na to má Python operátory // (podíl) a % (zbytek):

>>> 5 // 2
2
>>> 5 % 2
1

Mezery mezi čísly a znamínkem nejsou nutné: 4*5 i 4 * 5 dělá to samé co 4 * 5. Je ale zvykem psát kolem operátoru jednu mezeru z každé strany – tak jako v těchto materiálech. Kód je pak čitelnější.

Ukončení

Pokud ses dostala až sem, gratuluji! Python máš nejen nainstalovaný, ale taky ti funguje. Stačí ho už jen zavřít a pak opustit i samotnou příkazovou řádku. V Pythonu se to dělá pomocí quit(), s prázdnými závorkami na konci.

>>> quit()
(venv)$

Zobáčky >>> se změnily na výzvu příkazové řádky (která začíná (venv) a končí $ nebo >). Teď fungují příkazy jako whoami a cd, ale příkazy Pythonu jako 1 + 2 fungovat nebudou, dokud Python opět nepustíš pomocí příkazu python.

Ukončit virtuální prostředí můžeš příkazem deactivate – tentokrát bez závorek.

(venv)$ deactivate

Příkazovou řádku můžeš nakonec zavřít příkazem exit.

$ exit

Pro cvik si zkus Python znovu spustit – nejdřív otevři příkazovou řádku, pak aktivuj virtuální prostředí, potom spusť Python samotný.

{
  "data": {
    "sessionMaterial": {
      "id": "session-material:2019/brno-podzim-pondeli:expressions:2",
      "title": "První krůčky",
      "html": "\n          \n    \n\n    <h1>Interaktivn&#xED; re&#x17E;im Pythonu</h1>\n<p>Chce&#x161;-li si za&#x10D;&#xED;t hr&#xE1;t s&#xA0;Pythonem, otev&#x159;i <em>p&#x159;&#xED;kazov&#xFD; &#x159;&#xE1;dek</em> a aktivuj virtu&#xE1;ln&#xED; prost&#x159;ed&#xED;.  Zkontroluj si, &#x17E;e na za&#x10D;&#xE1;tku p&#x159;&#xED;kazov&#xE9; &#x159;&#xE1;dky ti sv&#xED;t&#xED; <code>(venv)</code>.</p>\n<p>Je-li tomu tak, nezb&#xFD;v&#xE1; ne&#x17E; &#x2013; kone&#x10D;n&#x11B; &#x2013; pustit Python. K tomu pou&#x17E;ij p&#x159;&#xED;kaz <code>python</code>:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span>python\n<span class=\"go\">Python 3.6.6 (...)</span>\n<span class=\"go\">Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.</span>\n<span class=\"gp\">&gt;</span>&gt;&gt;\n</pre></div><p>P&#x159;&#xED;kaz vyp&#xED;&#x161;e n&#x11B;kolik informac&#xED;. Z prvn&#xED;ho &#x159;&#xE1;dku se m&#x16F;&#x17E;e&#x161; ujistit, &#x17E;e pou&#x17E;&#xED;v&#xE1;&#x161; Python 3. (Vid&#xED;&#x161;-li &#x10D;&#xED;slo jako <code>2.7.11</code>, n&#x11B;co je &#x161;patn&#x11B; &#x2013; popros o&#xA0;radu kou&#x10D;e.)</p>\n<p>T&#x159;emi &#x201E;zob&#xE1;&#x10D;ky&#x201C; <code>&gt;&gt;&gt;</code> pak Python popros&#xED; o instrukce.\nJe to jako v p&#x159;&#xED;kazov&#xE9; &#x159;&#xE1;dce, ale m&#xED;sto p&#x159;&#xED;kaz&#x16F; jako <code>cd</code> a <code>mkdir</code> sem bude&#x161; ps&#xE1;t p&#x159;&#xED;kazy Pythonu.</p>\n<p>Vyzkou&#x161;ej si, &#x17E;e p&#x159;&#xED;kazy z&#xA0;p&#x159;&#xED;kazov&#xE9; &#x159;&#xE1;dky v&#xA0;Pythonu nefunguj&#xED;,\na&#x10D;koli ok&#xFD;nko vypad&#xE1; skoro stejn&#x11B;:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">whoami</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n  File <span class=\"nb\">&quot;&lt;stdin&gt;&quot;</span>, line <span class=\"m\">1</span>, in <span class=\"n\">&lt;module&gt;</span>\n<span class=\"gr\">NameError</span>: <span class=\"n\">name &apos;whoami&apos; is not defined</span>\n</pre></div><p>Tohle je <em>chybov&#xE1; hl&#xE1;&#x161;ka</em>, kter&#xE1; se objev&#xED; v&#x17E;dycky,\nkdy&#x17E; Python nebude spokojen&#xFD;.\nV&#xA0;pr&#x16F;b&#x11B;hu kurzu jich uvid&#xED;&#x161; je&#x161;t&#x11B; spoustu,\ntak&#x17E;e si ji dob&#x159;e prohl&#xE9;dni, a&#x165; ji p&#x159;&#xED;&#x161;t&#x11B; pozn&#xE1;&#x161;.</p>\n<h2>Prvn&#xED; p&#x159;&#xED;kaz</h2>\n<p>Jako prvn&#xED; instrukci pou&#x17E;ijeme Pythonu jako kalkula&#x10D;ku.\nZa t&#x159;i zob&#xE1;&#x10D;ky napi&#x161; t&#x159;eba <code>2 + 3</code> a zm&#xE1;&#x10D;kni <kbd>Enter</kbd>.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"mi\">2</span> <span class=\"o\">+</span> <span class=\"mi\">3</span>\n<span class=\"go\">5</span>\n</pre></div><p>Zobrazila se ti spr&#xE1;vn&#xE1; odpov&#x11B;&#x10F;?\nPokud ano, gratuluji! Prvn&#xED; p&#x159;&#xED;kaz v Pythonu m&#xE1;&#x161; za sebou.</p>\n<p>Zkus&#xED;&#x161; i ode&#x10D;&#xED;t&#xE1;n&#xED;?</p>\n<p>A jak je to s&#xA0;n&#xE1;soben&#xED;m?\nNa kalkula&#x10D;ce bys zadala <code>4 &#xD7; 5</code>, co&#x17E; se na kl&#xE1;vesnici p&#xED;&#x161;e &#x161;patn&#x11B;.\nPython proto pou&#x17E;&#xED;v&#xE1; symbol <code>*</code>.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"mi\">4</span> <span class=\"o\">*</span> <span class=\"mi\">5</span>\n<span class=\"go\">20</span>\n</pre></div><p>Symboly jako <code>+</code> a <code>*</code> se odborn&#x11B; naz&#xFD;vaj&#xED; <em>oper&#xE1;tory</em>.</p>\n<p>Oper&#xE1;tor pro d&#x11B;len&#xED; je <code>/</code>.</p>\n<p>P&#x159;i d&#x11B;len&#xED; m&#x16F;&#x17E;e vzniknout necel&#xE9; &#x10D;&#xED;slo, t&#x159;eba dva a p&#x16F;l.\nPython pou&#x17E;&#xED;v&#xE1; desetinnou <em>te&#x10D;ku</em>, uk&#xE1;&#x17E;e se tedy <code>2.5</code>:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"o\">&gt;&gt;&gt;</span> <span class=\"mi\">5</span> <span class=\"o\">/</span> <span class=\"mi\">2</span>\n<span class=\"mf\">2.5</span>\n</pre></div><p>Z&#xA0;d&#x16F;vod&#x16F;, do kter&#xFD;ch te&#x10F; nebudeme zab&#xED;hat, se p&#x159;i d&#x11B;len&#xED; desetinn&#xE1; te&#x10D;ka\nobjev&#xED; i kdy&#x17E; vyjde &#x10D;&#xED;slo cel&#xE9;:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"mi\">4</span> <span class=\"o\">/</span> <span class=\"mi\">2</span>\n<span class=\"go\">2.0</span>\n</pre></div><p>Ob&#x10D;as se hod&#xED; pou&#x17E;&#xED;t d&#x11B;len&#xED; se zbytkem.\nV&#xFD;sledek tak z&#x16F;stane jako cel&#xE9; &#x10D;&#xED;slo.\nNa to m&#xE1; Python oper&#xE1;tory <code>//</code> (pod&#xED;l) a <code>%</code> (zbytek):</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"mi\">5</span> <span class=\"o\">//</span> <span class=\"mi\">2</span>\n<span class=\"go\">2</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"mi\">5</span> <span class=\"o\">%</span> <span class=\"mi\">2</span>\n<span class=\"go\">1</span>\n</pre></div><div class=\"admonition style-note\"><p>Mezery mezi &#x10D;&#xED;sly a znam&#xED;nkem nejsou nutn&#xE9;: <code>4*5</code> i <code>4       * 5</code> d&#x11B;l&#xE1;\nto sam&#xE9; co <code>4 * 5</code>.\nJe ale zvykem ps&#xE1;t kolem oper&#xE1;toru jednu mezeru z&#xA0;ka&#x17E;d&#xE9; strany &#x2013; tak jako\nv&#xA0;t&#x11B;chto materi&#xE1;lech.\nK&#xF3;d je pak &#x10D;iteln&#x11B;j&#x161;&#xED;.</p>\n</div><h3>Ukon&#x10D;en&#xED;</h3>\n<p>Pokud ses dostala a&#x17E; sem, gratuluji!\nPython m&#xE1;&#x161; nejen nainstalovan&#xFD;, ale taky ti funguje.\nSta&#x10D;&#xED; ho u&#x17E; jen zav&#x159;&#xED;t a pak opustit i samotnou p&#x159;&#xED;kazovou &#x159;&#xE1;dku.\nV&#xA0;Pythonu se to d&#x11B;l&#xE1; pomoc&#xED; <code>quit()</code>, s&#xA0;pr&#xE1;zdn&#xFD;mi z&#xE1;vorkami na konci.</p>\n<div class=\"highlight\"><pre><span class=\"gp\">&gt;&gt;&gt;</span> quit()\n<span class=\"gp\">(venv)$</span>\n</pre></div><p>Zob&#xE1;&#x10D;ky <code>&gt;&gt;&gt;</code> se zm&#x11B;nily na v&#xFD;zvu\np&#x159;&#xED;kazov&#xE9; &#x159;&#xE1;dky (kter&#xE1; za&#x10D;&#xED;n&#xE1; <code>(venv)</code> a kon&#x10D;&#xED; <code>$</code> nebo <code>&gt;</code>).\nTe&#x10F; funguj&#xED; p&#x159;&#xED;kazy jako <code>whoami</code> a <code>cd</code>, ale p&#x159;&#xED;kazy Pythonu\njako <code>1 + 2</code> fungovat nebudou, dokud Python op&#x11B;t nepust&#xED;&#x161; pomoc&#xED;\np&#x159;&#xED;kazu <code>python</code>.</p>\n<p>Ukon&#x10D;it virtu&#xE1;ln&#xED; prost&#x159;ed&#xED; m&#x16F;&#x17E;e&#x161; p&#x159;&#xED;kazem <code>deactivate</code> &#x2013;\ntentokr&#xE1;t bez z&#xE1;vorek.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">(venv)$ </span>deactivate\n</pre></div><p>P&#x159;&#xED;kazovou &#x159;&#xE1;dku m&#x16F;&#x17E;e&#x161; nakonec zav&#x159;&#xED;t p&#x159;&#xED;kazem <code>exit</code>.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span><span class=\"nb\">exit</span>\n</pre></div><p>Pro cvik si zkus Python znovu spustit &#x2013; nejd&#x159;&#xED;v otev&#x159;i p&#x159;&#xED;kazovou &#x159;&#xE1;dku,\npak aktivuj virtu&#xE1;ln&#xED; prost&#x159;ed&#xED;, potom spus&#x165; Python samotn&#xFD;.</p>\n\n\n        "
    }
  }
}