Zkontroluj si, že máš aktivované virtuální prostředí (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
:
(venv)$ python
Python 3.4.0 (default, Jan 26 2014, 18:15:05)
[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Zkus napsat do příkazového řádku příkaz:
>>> print("Hello, world!")
Když stiskneš Enter, měl by se ti objevit nýsledující výstup:
Hello, world!
>>>
Pokud jste zvyklí z jiných programovacícj jazyků, že řádka musí být ukončena středníkem, pak v Pythonu to není zapotřebí.
Toto značí příkazový řádek:
>>>
Pokud do něj napíšeš řetězec v uvozovkách:
>>> "Hello world!"
dostaneš následující výstup:
'Hello world!'
>>>
Pokud ale zkusíš napsat podobný příkaz:
>>> Have fun!
File "<stdin>", line 1
Have fun!
^
SyntaxError: invalid syntax
>>>
Obdržíš chybové hlášení, že Python interpret nerozumí příkazu.
Zkus následující příkazy:
>>> 2 + 2
4
Výsledkem sčítání je celé číslo. Pokud budeme dělit, výsledkem bude číslo s pohyblivou čárkou (floating-point number).
>>> 1 / 2
0.5
>>> 1 / 1
1.0
Pokud tě zajímá celočíselné dělení, zkus:
>>> 1 // 2
0
>>> 1 // 1
1
>>> 5.0 // 2.4
2.0
Operátor modulo:
>>> 1 % 2
1
Některé příklady celočíselného dělení a zbytku po celočíselném dělení:
>>> 10 // 3
3
>>> 10 % 3
1
>>> 9 // 3
3
>>> 9 % 3
0
Poslední operátor na který se podíváme je operátor exponenciální operátor:
>>> 2 ** 3
8
>>> -3 ** 2
-9
>>> (-3) ** 2
9
>>> 0xAF
175
>>> 010
8
>>> 0b1011010010
722
V závislosti na verzi Pythonu se může stát, že osmičkový zápis čísel selže s chybou jako je náseldující:
>>> 0l0
File "<stdin>", line 1
0l0
^
SyntaxError: invalid syntax
Pokud se to stane, budeš muset zadávat osmičkový zápis ve tvaru:
>>> 0o10
8
Jedná se o změnu v Python3, popsanou v PEP-3127
Pokud máš alespoň malé zkušenosti s programováním, je ti asi známý koncept proměnných (variables). Proměnná reprezentuje nějakou hodnotu. Touto hodnotou může být řetězec, číslo atd. Přiřadit hodnotu do proměnné můžeme v Pythonu snadno takto:
>>> x = 2
Poté, co přiřadíme proměnné nějakou hodnotu, můžeme proměnnou použít v dalším kódu:
>>> x * 2
4
Jméno proměnné může obsahovat písmena, čísla a znak podržítka (_). Nemůžou začínat číslem, takže proměnná s názvem variable1 je validní, ale 1variable už ne.
Rozdíl mezi výrazy a příkazy je následující, zatímco výraz je něco, příkaz dělá něco. Například výraz 3 * 3 je 9:
>>> 3 * 3
9
ale příkaz print(3 * 3) vytiske hodnotu 9.
print(3 * 3)
9
Pokud potřebuješ v programu získat od uživatele nějakou vstupní hodnotu, můžeš použít funkci input.
>>> input('Zadejte velikost vasich bot: ')
Zadejte velikost vasich bot: 45
'45'
Pomocí funce input můžeš přiřadit nejakou hodnotu do proměnné, například takto:
>>> x = input("x: ")
x: 45
>>> y = input("y: ")
y: 23
A nyní můžeš ověřit, že hodnoty byly přiřazeny proměnným x a y a můžeš je dále použít:
>>> print(int(x) * int(y))
1035
Všimni si, že jsme uvnitř funkce print museli u proměnných x a y použít funkci int(). Jedná se o tzn. přetypování, které jsme museli udělat, protože uživatel zadal hodnoty do proměnných x a y jako řetězce a ne jako čísla. Zkus si, co by se stalo, kdyby jsi přetypování neprovedl.
Funkce jsou jako malé programy, které slouží k vykonání určité specifické akce. Python má mnoho funkcí, které můžeš využívat. Tyto se nazývají built-in funkce. Dále si pak každý uživatel může vytvářet své flastní funkce dle potřeby.
>>> 2 ** 3
8
>>> pow(2, 3)
8
Zde vidíme, že funkce pow() vykonává stejnou funci, jako výraz 2 ** 3.
Moduly jsou rozšířením výchozích schopností Pythonu a mohou být importovány do tvého kódu.
>>> import math
>>> math.floor(11.9)
11
>>> from math import sqrt
>>> sqrt(9)
3.0
Mnoho modulů je standarní součástí Pythonu (jako například modul math), další pak mohou být naprogramovány tebou nebo někým dalším.
Doposud jsme si ukazovali, jak zadávat příkazy v Python interaktivní příkazové řádce. Co ale, když chceme náš program ulozžit pro pozdější použití? Pokud totiž zavřeme okno s Python interaktivní příkazovou řádkou, všw co jsem napsali je ztraceno.
Pokud chcete psát programy pro další použití, musíte jej uložit so souboru a později jej spustit. Pro psaní programu v Pythonu budeš potřebovat textový editor. Jak jej získat a nainstalovat je popsáno v kapitole Instalace editoru.
Otevři nový soubor, pojmenuj ho hello.py a vlož do něj následující řádky:
name = input("What is your name? ")
print("Hello, " + name + "!")
Ulož soubor a spusť pomocí příkazu ve Windows:
C:\>python hello.py
a nebo v UNIXu:
$ python hello.py
Nyní jsi tedy schopný spustit Python program pomocí programu python. Co ale, když chceš svůj skript spouštět jako běžný program na počítači a nemuset se odvolávat na Python interpretr? Na operačních systémech typu UNIX se to dělá tak, že jako první řádku tvého skriptu přidáš následující:
#!/usr/bin/env python
a dále pak nastavíš práva na soubor tak, aby byl soubor se skriptem spustitelný.
$ chmod a+x hello.py
Nyní můžeš skript spustit pomocí:
./hello.py
Ve Windows použijte dvojklik ke spuštění svého skriptu. Problém je, že DOS okno s programem se uzavře ihned po proběhnutí skriptu. Jako možné řešení můžeš přidat následující řádek na konec programu:
input("Press <enter>")
Znak hash (mřížka) je speciální znak v Pythonu. Kdekoliv jej použiješ, vše napravo od tohoto znaku je bráno jako jako komentář a je ignorováno pro běh programu.
# Collect the user's name
name = input("What is your name?") # This is also comment
{ "data": { "sessionMaterial": { "id": "session-material:2019/tieto-ostrava-jaro:install:4", "title": "Interaktivní příkazová řádka Pythonu", "html": "\n \n \n\n <h2>Interaktivní příkazová řádka Pythonu</h2>\n<p>Zkontroluj si, že máš aktivované virtuální prostředí (na začátku příkazové\nřádky ti svítí <code>(venv)</code>).</p>\n<p>Je-li tomu tak, nezbývá než – konečně – pustit Python.\nK tomu použij příkaz <code>python</code>:</p>\n<div class=\"highlight\"><pre><code>(venv)$ python\nPython 3.4.0 (default, Jan 26 2014, 18:15:05)\n[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux\nType "help", "copyright", "credits" or "license" for more information.\n>>></code></pre></div><p>Zkus napsat do příkazového řádku příkaz:</p>\n<div class=\"highlight\"><pre><code>>>> print("Hello, world!")</code></pre></div><p>Když stiskneš Enter, měl by se ti objevit nýsledující výstup:</p>\n<div class=\"highlight\"><pre><code>Hello, world!\n>>></code></pre></div><p>Pokud jste zvyklí z jiných programovacícj jazyků, že řádka musí být ukončena středníkem, pak v Pythonu to není zapotřebí.</p>\n<p>Toto značí příkazový řádek:</p>\n<div class=\"highlight\"><pre><code>>>></code></pre></div><p>Pokud do něj napíšeš řetězec v uvozovkách:</p>\n<div class=\"highlight\"><pre><code>>>> "Hello world!"</code></pre></div><p>dostaneš následující výstup:</p>\n<div class=\"highlight\"><pre><code>'Hello world!'\n>>></code></pre></div><p>Pokud ale zkusíš napsat podobný příkaz:</p>\n<div class=\"highlight\"><pre><code>>>> Have fun!\n File "<stdin>", line 1\n Have fun!\n ^\nSyntaxError: invalid syntax\n>>></code></pre></div><p>Obdržíš chybové hlášení, že Python interpret nerozumí příkazu.</p>\n<h3>Čísla a výrazy</h3>\n<p>Zkus následující příkazy:</p>\n<div class=\"highlight\"><pre><code>>>> 2 + 2\n4</code></pre></div><p>Výsledkem sčítání je celé číslo. Pokud budeme dělit, výsledkem bude číslo s pohyblivou čárkou (floating-point number).</p>\n<div class=\"highlight\"><pre><code>>>> 1 / 2\n0.5\n>>> 1 / 1\n1.0</code></pre></div><p>Pokud tě zajímá celočíselné dělení, zkus:</p>\n<div class=\"highlight\"><pre><code>>>> 1 // 2\n0\n>>> 1 // 1\n1\n>>> 5.0 // 2.4\n2.0</code></pre></div><p>Operátor modulo:</p>\n<div class=\"highlight\"><pre><code>>>> 1 % 2\n1</code></pre></div><p>Některé příklady celočíselného dělení a zbytku po celočíselném dělení:</p>\n<div class=\"highlight\"><pre><code>>>> 10 // 3\n3\n>>> 10 % 3\n1\n>>> 9 // 3\n3\n>>> 9 % 3\n0</code></pre></div><p>Poslední operátor na který se podíváme je operátor exponenciální operátor:</p>\n<div class=\"highlight\"><pre><code>>>> 2 ** 3\n8\n>>> -3 ** 2\n-9\n>>> (-3) ** 2\n9</code></pre></div><h4>Hexadecimální, osmičkový a binární zápis čísel</h4>\n<div class=\"highlight\"><pre><code>>>> 0xAF\n175\n>>> 010\n8\n>>> 0b1011010010\n722</code></pre></div><div class=\"admonition note\"><p>V závislosti na verzi Pythonu se může stát, že osmičkový zápis čísel selže s chybou jako je náseldující:</p>\n<div class=\"highlight\"><pre><code>>>> 0l0\n File "<stdin>", line 1\n 0l0\n ^\nSyntaxError: invalid syntax</code></pre></div><p>Pokud se to stane, budeš muset zadávat osmičkový zápis ve tvaru:</p>\n<div class=\"highlight\"><pre><code>>>> 0o10\n8</code></pre></div><p>Jedná se o změnu v Python3, popsanou v <a href=\"http://www.python.org/dev/peps/>%20pep-3127/\">PEP-3127</a></p>\n</div><h3>Proměnné</h3>\n<p>Pokud máš alespoň malé zkušenosti s programováním, je ti asi známý koncept <em>proměnných (variables)</em>. Proměnná reprezentuje nějakou hodnotu. Touto hodnotou může být řetězec, číslo atd. Přiřadit hodnotu do proměnné můžeme v Pythonu snadno takto:</p>\n<div class=\"highlight\"><pre><code>>>> x = 2</code></pre></div><p>Poté, co přiřadíme proměnné nějakou hodnotu, můžeme proměnnou použít v dalším kódu:</p>\n<div class=\"highlight\"><pre><code>>>> x * 2\n4</code></pre></div><div class=\"admonition note\"><p>Jméno proměnné může obsahovat písmena, čísla a znak podržítka (_). Nemůžou začínat číslem, takže proměnná s názvem <strong>variable1</strong> je validní, ale <strong>1variable</strong> už ne.</p>\n</div><h3>Příkazy</h3>\n<p>Rozdíl mezi výrazy a příkazy je následující, zatímco výraz <em>je</em> něco, příkaz <em>dělá</em> něco. Například výraz 3 * 3 <em>je</em> 9:</p>\n<div class=\"highlight\"><pre><code>>>> 3 * 3\n9</code></pre></div><p>ale příkaz print(3 * 3) <em>vytiske</em> hodnotu 9.</p>\n<div class=\"highlight\"><pre><code>print(3 * 3)\n9</code></pre></div><h3>Získání vstupu od uživatele</h3>\n<p>Pokud potřebuješ v programu získat od uživatele nějakou vstupní hodnotu, můžeš použít funkci input.</p>\n<div class=\"highlight\"><pre><code>>>> input('Zadejte velikost vasich bot: ')\nZadejte velikost vasich bot: 45\n'45'</code></pre></div><p>Pomocí funce input můžeš přiřadit nejakou hodnotu do proměnné, například takto:</p>\n<div class=\"highlight\"><pre><code>>>> x = input("x: ")\nx: 45\n>>> y = input("y: ")\ny: 23</code></pre></div><p>A nyní můžeš ověřit, že hodnoty byly přiřazeny proměnným x a y a můžeš je dále použít:</p>\n<div class=\"highlight\"><pre><code>>>> print(int(x) * int(y))\n1035</code></pre></div><div class=\"admonition note\"><p>Všimni si, že jsme uvnitř funkce print museli u proměnných x a y použít funkci <em>int()</em>. Jedná se o tzn. přetypování, které jsme museli udělat, protože uživatel zadal hodnoty do proměnných x a y jako řetězce a ne jako čísla. Zkus si, co by se stalo, kdyby jsi přetypování neprovedl.</p>\n</div><h2>Funkce</h2>\n<p>Funkce jsou jako malé programy, které slouží k vykonání určité specifické akce. Python má mnoho funkcí, které můžeš využívat. Tyto se nazývají <em>built-in</em> funkce. Dále si pak každý uživatel může vytvářet své flastní funkce dle potřeby.</p>\n<div class=\"highlight\"><pre><code>>>> 2 ** 3\n8\n>>> pow(2, 3)\n8</code></pre></div><p>Zde vidíme, že funkce pow() vykonává stejnou funci, jako výraz 2 ** 3.</p>\n<h2>Moduly</h2>\n<p>Moduly jsou rozšířením výchozích schopností Pythonu a mohou být importovány do tvého kódu.</p>\n<div class=\"highlight\"><pre><code>>>> import math\n>>> math.floor(11.9)\n11</code></pre></div><div class=\"highlight\"><pre><code>>>> from math import sqrt\n>>> sqrt(9)\n3.0</code></pre></div><p>Mnoho modulů je standarní součástí Pythonu (jako například modul <em>math</em>), další pak mohou být naprogramovány tebou nebo někým dalším.</p>\n<h2>Uložení a spuštění vašich programů</h2>\n<p>Doposud jsme si ukazovali, jak zadávat příkazy v Python interaktivní příkazové řádce. Co ale, když chceme náš program ulozžit pro pozdější použití? Pokud totiž zavřeme okno s Python interaktivní příkazovou řádkou, všw co jsem napsali je ztraceno.</p>\n<p>Pokud chcete psát programy pro další použití, musíte jej uložit so souboru a později jej spustit. Pro psaní programu v Pythonu budeš potřebovat textový editor. Jak jej získat a nainstalovat je popsáno v kapitole <a href=\"/2019/tieto-ostrava-jaro/beginners/install-editor/\">Instalace editoru</a>.</p>\n<p>Otevři nový soubor, pojmenuj ho hello.py a vlož do něj následující řádky:</p>\n<div class=\"highlight\"><pre><code>name = input("What is your name? ")\nprint("Hello, " + name + "!")</code></pre></div><p>Ulož soubor a spusť pomocí příkazu ve Windows:</p>\n<div class=\"highlight\"><pre><code>C:\\>python hello.py</code></pre></div><p>a nebo v UNIXu:</p>\n<div class=\"highlight\"><pre><code>$ python hello.py</code></pre></div><h2>Nastavení skriptu jako spustitelný soubor</h2>\n<p>Nyní jsi tedy schopný spustit Python program pomocí programu <em>python</em>. Co ale, když chceš svůj skript spouštět jako běžný program na počítači a nemuset se odvolávat na Python interpretr? Na operačních systémech typu UNIX se to dělá tak, že jako první řádku tvého skriptu přidáš následující:</p>\n<div class=\"highlight\"><pre><code>#!/usr/bin/env python</code></pre></div><p>a dále pak nastavíš práva na soubor tak, aby byl soubor se skriptem spustitelný.</p>\n<div class=\"highlight\"><pre><code>$ chmod a+x hello.py</code></pre></div><p>Nyní můžeš skript spustit pomocí:</p>\n<div class=\"highlight\"><pre><code>./hello.py</code></pre></div><p>Ve Windows použijte dvojklik ke spuštění svého skriptu. Problém je, že DOS okno s programem se uzavře ihned po proběhnutí skriptu. Jako možné řešení můžeš přidat následující řádek na konec programu:</p>\n<div class=\"highlight\"><pre><code>input("Press <enter>")</code></pre></div><h2>Komentáře</h2>\n<p>Znak hash (mřížka) je speciální znak v Pythonu. Kdekoliv jej použiješ, vše napravo od tohoto znaku je bráno jako jako komentář a je ignorováno pro běh programu.</p>\n<div class=\"highlight\"><pre><code># Collect the user's name\nname = input("What is your name?") # This is also comment</code></pre></div>\n\n\n " } } }