První program

>>> 3 + 4
7

Psaní příkazů přímo v Pythonu, interaktivně, má jednu velkou nevýhodu: to, co napíšeš, se ztratí, jakmile zavřeš okno příkazové řádky. Na jednoduché výpočty to nevadí, ale až budou tvoje programy složitější, budeš je potřebovat nějak uložit.

Otevři editor (Ten bys měl/a mít nainstalovaný, jestli ne, instrukce jsou v předchozí lekci.)

V něm vytvoř nový soubor, do kterého napiš následující text:

print("Ahoj světe!")

Pak soubor ulož jako ahoj.py:

  • V adresáři, kde máš soubory ke kurzům Pythonu, si založ adresář pojmenovaný podle čísla lekce (např. 02). Měl by být vedle tvého virtuálního prostředí.
  • Do něj pak soubor ulož pod jménem ahoj.py.

Pokud máš v ukládacím okýnku možnost zvolit kódování, zvol UTF-8. Můžeš–li zvolit typ souboru, zvol .py nebo „všechny soubory“.

Spuštění

Otevři si příkazovou řádku. Pomocí cd donaviguj do adresáře, kde máš soubory ke kurzům Pythonu.

S příkazovou řádkou jsme se seznámili v minulé lekci, která popisuje i změnu aktuálního adresáře pomocí příkazu cd.

Aktivuj si virtuální prostředí.

Příkaz k tomu jsme si ukázali na konci návodu na tvorbu virtuálního prostředí; končí activate.

Pak a zadej tento příkaz:

(venv)$ python ahoj.py

Pokud se vypíše hláška Ahoj světe!, gratuluji! Napsal/a jsi svůj první program v Pythonu!

Jestli to nefunguje, zkontroluj, že:

  • Máš zapnuté virtuální prostředí. (Na příkazové řádce se musí ukazovat (venv); pokud tam není, použij příkaz „activate“ z minula.)
  • Jsi ve správném adresáři. Zkus pwd (Unix) nebo cd (Windows). Aktuální adresář musí být ten, do kterého jsi uložil/a soubor s programem.
  • Soubor se opravdu jmenuje ahoj.py. Pomocí ls (Unix) nebo dir (Windows) zkontroluj, že se soubor opravdu jmenuje ahoj.py a ne třeba ahoj.py.txt. Jestli ne, ulož ho znovu pod správným jménem.
  • Soubor ahoj.py obsahuje správný příkaz, včetně všech uvozovek a závorek.
  • Slovo (venv) ani znak $ nezadáváš – v materiálech jsou proto, aby bylo poznat že jde o příkaz příkazové řádky. Na $ (nebo, na Windows, >) končí dotaz, který vypíše sám počítač. Příkaz, který zadáváš ty, je jen python ahoj.py.

A jestli to pořád nefunguje, zeptej se kouče.

Typografická vsuvka

V Pythonu je většinou jedno, kde napíšeš mezeru. Stejně jako náš příkaz print("Ahoj světe!") by fungovalo třeba:

print      (   "Ahoj světe!"     )

Je ale zvykem dodržovat určitá pravidla. Jako v češtině se po otvírací závorce a za ozavírací závorkou nepíše mezera. Na rozdíl od češtiny ale mezeru nepiš ani mezi print a závorkou. „Správně“ je tedy:

print("Ahoj světe!")

V rámci uvozovek má pak každá mezera význam: když napíšeš " Ahoj světe!", mezery navíc se objeví ve výsledné hlášce.

{
  "data": {
    "sessionMaterial": {
      "id": "session-material:2019/pyladies-praha-podzim-cznic:hello:0",
      "title": "PrvnĂ­ program",
      "html": "\n          \n    \n\n    <h1>Prvn&#xED; program</h1>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"mi\">3</span> <span class=\"o\">+</span> <span class=\"mi\">4</span>\n<span class=\"go\">7</span>\n</pre></div><p>Psan&#xED; p&#x159;&#xED;kaz&#x16F; p&#x159;&#xED;mo v&#xA0;Pythonu, <em>interaktivn&#x11B;</em>,\nm&#xE1; jednu velkou nev&#xFD;hodu:\nto, co nap&#xED;&#x161;e&#x161;, se ztrat&#xED;, jakmile zav&#x159;e&#x161; okno p&#x159;&#xED;kazov&#xE9; &#x159;&#xE1;dky.\nNa jednoduch&#xE9; v&#xFD;po&#x10D;ty to nevad&#xED;, ale a&#x17E; budou tvoje programy slo&#x17E;it&#x11B;j&#x161;&#xED;,\nbude&#x161; je pot&#x159;ebovat n&#x11B;jak ulo&#x17E;it.</p>\n<p>Otev&#x159;i editor\n(Ten bys m&#x11B;l/a m&#xED;t nainstalovan&#xFD;, jestli ne, instrukce jsou v&#xA0;<a href=\"/2019/pyladies-praha-podzim-cznic/beginners/install-editor/\">p&#x159;edchoz&#xED;\nlekci</a>.)</p>\n<p>V&#xA0;n&#x11B;m vytvo&#x159; nov&#xFD; soubor, do kter&#xE9;ho napi&#x161; n&#xE1;sleduj&#xED;c&#xED; text:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">&quot;Ahoj sv&#x11B;te!&quot;</span><span class=\"p\">)</span>\n</pre></div><p>Pak soubor ulo&#x17E; jako <code>ahoj.py</code>:</p>\n<ul>\n<li>V adres&#xE1;&#x159;i, kde m&#xE1;&#x161; soubory ke kurz&#x16F;m Pythonu, si zalo&#x17E; adres&#xE1;&#x159; pojmenovan&#xFD;\npodle &#x10D;&#xED;sla lekce (nap&#x159;. <code>02</code>).\nM&#x11B;l by b&#xFD;t vedle tv&#xE9;ho virtu&#xE1;ln&#xED;ho prost&#x159;ed&#xED;.</li>\n<li>Do n&#x11B;j pak soubor ulo&#x17E; pod jm&#xE9;nem <code>ahoj.py</code>.</li>\n</ul>\n<p>Pokud m&#xE1;&#x161; v&#xA0;ukl&#xE1;dac&#xED;m ok&#xFD;nku mo&#x17E;nost zvolit <em>k&#xF3;dov&#xE1;n&#xED;</em>, zvol <code>UTF-8</code>.\nM&#x16F;&#x17E;e&#x161;&#x2013;li zvolit typ souboru, zvol <code>.py</code> nebo &#x201E;v&#x161;echny soubory&#x201C;.</p>\n<h2>Spu&#x161;t&#x11B;n&#xED;</h2>\n<p>Otev&#x159;i si p&#x159;&#xED;kazovou &#x159;&#xE1;dku.\nPomoc&#xED; <code>cd</code> donaviguj do adres&#xE1;&#x159;e, kde m&#xE1;&#x161; soubory ke kurz&#x16F;m Pythonu.</p>\n<div class=\"admonition note\"><p>S&#xA0;p&#x159;&#xED;kazovou &#x159;&#xE1;dkou jsme se sezn&#xE1;mili\nv&#xA0;<a href=\"/2019/pyladies-praha-podzim-cznic/beginners/cmdline/\">minul&#xE9; lekci</a>, kter&#xE1; popisuje i zm&#x11B;nu aktu&#xE1;ln&#xED;ho\nadres&#xE1;&#x159;e pomoc&#xED; p&#x159;&#xED;kazu <code>cd</code>.</p>\n</div><p>Aktivuj si virtu&#xE1;ln&#xED; prost&#x159;ed&#xED;.</p>\n<div class=\"admonition note\"><p>P&#x159;&#xED;kaz k&#xA0;tomu jsme si uk&#xE1;zali na konci\n<a href=\"/2019/pyladies-praha-podzim-cznic/beginners/venv-setup/\">n&#xE1;vodu na tvorbu virtu&#xE1;ln&#xED;ho prost&#x159;ed&#xED;</a>; kon&#x10D;&#xED; <code>activate</code>.</p>\n</div><p>Pak a zadej tento p&#x159;&#xED;kaz:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">(venv)$ </span>python ahoj.py\n</pre></div><p>Pokud se vyp&#xED;&#x161;e hl&#xE1;&#x161;ka <code>Ahoj sv&#x11B;te!</code>, gratuluji!\nNapsal/a jsi sv&#x16F;j prvn&#xED; program v&#xA0;Pythonu!</p>\n<p>Jestli to nefunguje, zkontroluj, &#x17E;e:</p>\n<ul>\n<li>M&#xE1;&#x161; zapnut&#xE9; virtu&#xE1;ln&#xED; prost&#x159;ed&#xED;.\n(Na p&#x159;&#xED;kazov&#xE9; &#x159;&#xE1;dce se mus&#xED; ukazovat <code>(venv)</code>;\npokud tam nen&#xED;, pou&#x17E;ij p&#x159;&#xED;kaz &#x201E;activate&#x201C; z&#xA0;<a href=\"/2019/pyladies-praha-podzim-cznic/beginners/install/\">minula</a>.)</li>\n<li>Jsi ve spr&#xE1;vn&#xE9;m adres&#xE1;&#x159;i. Zkus <code>pwd</code> (Unix) nebo <code>cd</code> (Windows).\nAktu&#xE1;ln&#xED; adres&#xE1;&#x159; mus&#xED; b&#xFD;t ten, do kter&#xE9;ho jsi ulo&#x17E;il/a\nsoubor s&#xA0;programem.</li>\n<li>Soubor se opravdu jmenuje <code>ahoj.py</code>.\nPomoc&#xED; <code>ls</code> (Unix) nebo <code>dir</code> (Windows) zkontroluj, &#x17E;e se soubor opravdu\njmenuje <code>ahoj.py</code> a ne t&#x159;eba <code>ahoj.py.txt</code>.\nJestli ne, ulo&#x17E; ho znovu pod spr&#xE1;vn&#xFD;m jm&#xE9;nem.</li>\n<li>Soubor <code>ahoj.py</code> obsahuje spr&#xE1;vn&#xFD; p&#x159;&#xED;kaz, v&#x10D;etn&#x11B; v&#x161;ech uvozovek a z&#xE1;vorek.</li>\n<li>Slovo <code>(venv)</code> ani znak <code>$</code> nezad&#xE1;v&#xE1;&#x161; &#x2013; v&#xA0;materi&#xE1;lech jsou proto, aby bylo\npoznat &#x17E;e jde o p&#x159;&#xED;kaz p&#x159;&#xED;kazov&#xE9; &#x159;&#xE1;dky.\nNa <code>$</code> (nebo, na Windows, <code>&gt;</code>) kon&#x10D;&#xED; dotaz, kter&#xFD; vyp&#xED;&#x161;e s&#xE1;m po&#x10D;&#xED;ta&#x10D;.\nP&#x159;&#xED;kaz, kter&#xFD; zad&#xE1;v&#xE1;&#x161; ty, je jen <code>python ahoj.py</code>.</li>\n</ul>\n<p>A jestli to po&#x159;&#xE1;d nefunguje, zeptej se\nkou&#x10D;e.</p>\n<div class=\"admonition style-note\"><p class=\"admonition-title\">Typografick&#xE1; vsuvka</p>\n<p>V&#xA0;Pythonu je v&#x11B;t&#x161;inou jedno, kde nap&#xED;&#x161;e&#x161; mezeru. Stejn&#x11B; jako n&#xE1;&#x161; p&#x159;&#xED;kaz\n<code>print(&quot;Ahoj sv&#x11B;te!&quot;)</code> by fungovalo t&#x159;eba:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">print</span>      <span class=\"p\">(</span>   <span class=\"s2\">&quot;Ahoj sv&#x11B;te!&quot;</span>     <span class=\"p\">)</span>\n</pre></div><p>Je ale zvykem dodr&#x17E;ovat ur&#x10D;it&#xE1; pravidla.\nJako v &#x10D;e&#x161;tin&#x11B; se po otv&#xED;rac&#xED; z&#xE1;vorce a za\nozav&#xED;rac&#xED; z&#xE1;vorkou nep&#xED;&#x161;e mezera.\nNa rozd&#xED;l od &#x10D;e&#x161;tiny ale mezeru nepi&#x161; ani mezi <code>print</code> a z&#xE1;vorkou.\n&#x201E;Spr&#xE1;vn&#x11B;&#x201C; je tedy:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">&quot;Ahoj sv&#x11B;te!&quot;</span><span class=\"p\">)</span>\n</pre></div><p>V&#xA0;r&#xE1;mci uvozovek m&#xE1; pak ka&#x17E;d&#xE1; mezera v&#xFD;znam: kdy&#x17E; nap&#xED;&#x161;e&#x161;\n<code>&quot;    Ahoj      sv&#x11B;te!&quot;</code>, mezery nav&#xED;c se objev&#xED; ve v&#xFD;sledn&#xE9; hl&#xE1;&#x161;ce.</p>\n</div>\n\n\n        "
    }
  }
}