Klíčová slova jsou vyhrazená slova v jazyce Python. Klíčové slovo nemůžeme použít jako název proměnné, název funkce nebo jiný identifikátor.
Tady je seznam všech klíčových slov v programovacím jazyce Python
False | await | else | import | pass |
None | break | except | in | raise |
True | class | finally | is | return |
and | pokračovat | pro | lambda | zkoušet |
jako | def | from | nonlocal | while |
assert | del | global | not | with |
async | elif | if | or | yield |
Výše uvedená klíčová slova se mohou v různých verzích Pythonu změnit. Některá navíc mohou být přidána nebo některá odstraněna. Seznam klíčových slov v aktuální verzi můžete vždy získat zadáním následujícího příkazu do výzvy.
>>> import keyword>>> print(keyword.kwlist)
Popis klíčových slov v jazyce Python s příklady
Pravdivostní hodnoty v jazyce Python jsou True, False
True
a False
. Jsou to výsledky porovnávacích operací nebo logických (booleovských) operací v jazyce Python. Například:
>>> 1 == 1True>>> 5 > 3True>>> True or FalseTrue>>> 10 <= 1False>>> 3 > 7False>>> True and FalseFalse
Zde vidíme, že první tři příkazy jsou pravdivé, takže interpret vrátí True
a pro zbývající tři příkazy vrátí False
. True
a False
v jazyce python je totéž jako 1
a 0
. To lze zdůvodnit následujícím příkladem:
>>> True == 1True>>> False == 0True>>> True + True2
None
None
je speciální konstanta v jazyce Python, která představuje nepřítomnost hodnoty nebo nulovou hodnotu.
Je to objekt vlastního datového typu NoneType
. Nemůžeme vytvořit více objektů None
, ale můžeme ji přiřadit proměnným. Tyto proměnné si budou navzájem rovny.
Musíme dát zvláštní pozor, aby None
neznamenal False
, 0
nebo jakýkoli prázdný seznam, slovník, řetězec apod. Například:
>>> None == 0False>>> None == False>>> None == FalseFalse>>> x = None>>> y = None>>> x == yTrue
Prázdné funkce, které nic nevracejí, budou automaticky vracet objekt None
. Objekt None
vracejí také funkce, ve kterých se v toku programu nesetkáme s příkazem return. Například:
def a_void_function(): a = 1 b = 2 c = a + bx = a_void_function()print(x)
Výstup
None
Tento program má funkci, která nevrací žádnou hodnotu, i když uvnitř provádí nějaké operace. Když tedy vypíšeme x, dostaneme None
, který je automaticky (implicitně) vrácen. Podobně zde máme další příklad:
def improper_return_function(a): if (a % 2) == 0: return Truex = improper_return_function(3)print(x)
Výstup
None
Ačkoli má tato funkce příkaz return
, nedosáhne ho v každém případě. Funkce vrátí True
pouze tehdy, je-li vstup sudý.
Pokud funkci zadáme liché číslo, vrátí se implicitně None
.
a, nebo , ne
and
, or
, not
jsou logické operátory v jazyce Python. Výsledkem and
bude True
pouze v případě, že oba operandy jsou True
. Pravdivostní tabulka pro and
je uvedena níže:
A | B | A a B |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
or
bude výsledkem True
, pokud je některý z operandů True
. Pravdivostní tabulka pro or
je uvedena níže:
A | B | A nebo B |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
not
Operátor se používá k invertování pravdivostní hodnoty. Pravdivostní tabulka pro not
je uvedena níže:
A | není A |
---|---|
Pravda | Nepravda |
Ne | True |
některé příklady jejich použití jsou uvedeny níže
>>> True and FalseFalse>>> True or FalseTrue>>> not FalseTrue
as
as
slouží k vytvoření aliasu při importu modulu. Znamená to, že při importu modulu mu přiřadíte jiné jméno (definované uživatelem).
Jako příklad lze uvést, že Python má standardní modul s názvem math
. Předpokládejme, že chceme pomocí aliasu vypočítat, jaký je kosinus pí. Můžeme to udělat následujícím způsobem pomocí as
:
>>> import math as myAlias>>>myAlias.cos(myAlias.pi)-1.0
Zde jsme importovali modul math
tak, že jsme mu dali jméno myAlias
. Nyní se můžeme na modul math
odkazovat tímto jménem. Pomocí tohoto jména jsme vypočítali cos(pí) a jako odpověď jsme dostali -1.0
.
assert
assert
slouží k ladění
Při programování chceme někdy zjistit vnitřní stav nebo ověřit, zda jsou naše předpoklady pravdivé. assert
To nám pomůže udělat a pohodlněji najít chyby. Za assert
následuje podmínka.
Pokud je podmínka pravdivá, nic se nestane. Pokud je však podmínka nepravdivá, vyvolá se AssertionError
. Například:
>>> a = 4>>> assert a < 5>>> assert a > 5Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>AssertionError
Pro naše lepší pochopení můžeme také uvést zprávu, která se vypíše spolu s AssertionError
.
>>> a = 4>>> assert a > 5, "The value of a is too small"Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>AssertionError: The value of a is too small
Na tomto místě můžeme poznamenat, že,
assert condition, message
je ekvivalentní s,
if not condition: raise AssertionError(message)
async, await
Klíčová slova async
a await
poskytuje knihovna asyncio
v jazyce Python. Používají se k zápisu souběžného kódu v jazyce Python. Například
import asyncioasync def main(): print('Hello') await asyncio.sleep(1) print('world')
Pro spuštění programu použijeme
asyncio.run(main())
V uvedeném programu klíčové slovo async
určuje, že funkce bude provedena asynchronně.
Zde se nejprve vypíše Hello. Klíčové slovo await
způsobí, že program bude čekat 1 sekundu. A pak se vypíše svět.
break, continue
break
a continue
se používají uvnitř cyklů for
a while
, aby změnily jejich normální chování.
break
ukončí nejmenší cyklus, ve kterém se nachází, a řízení přejde na příkaz bezprostředně pod cyklem. continue
způsobí ukončení aktuální iterace smyčky, ale ne celé smyčky.
To lze ilustrovat na následujících dvou příkladech:
for i in range(1,11): if i == 5: break print(i)
Výstup
1234
Zde má smyčka for
v úmyslu vypsat čísla od 1 do 10. Podmínka if
je však splněna, když je i rovno 5, a my smyčku přerušíme. Vypíše se tedy pouze rozsah 1 až 4.
for i in range(1,11): if i == 5: continue print(i)
Výstup
1234678910
Zde pro stejný program použijeme continue
. Při splnění podmínky se tedy tato iterace přeskočí. Smyčku však neukončujeme. Proto se vypíší všechny hodnoty kromě 5.
Přečtěte si více o příkazech break a continue v jazyce Python.
třída
class
slouží k definici nové uživatelsky definované třídy v jazyce Python.
Třída je kolekce souvisejících atributů a metod, které se snaží reprezentovat reálnou situaci. Tato myšlenka sdružování dat a funkcí do třídy je ústředním prvkem konceptu objektově orientovaného programování (OOP).
Třídy lze definovat kdekoli v programu. Je však dobrým zvykem definovat jednu třídu v modulu. Následuje ukázka použití:
class ExampleClass: def function1(parameters): … def function2(parameters): …
Další informace o objektech a třídách v jazyce Python.
def
def
slouží k definici uživatelsky definované funkce.
Funkce je blok souvisejících příkazů, které společně vykonávají nějaký konkrétní úkol. Pomáhá nám uspořádat kód do zvládnutelných částí a také provést nějakou opakující se úlohu.
Použití def
je uvedeno níže:
def function_name(parameters): …
Další informace o funkcích jazyka Python.
del
del
slouží k odstranění reference na objekt. V jazyce Python je vše objekt. Odkaz na proměnnou můžeme smazat pomocí del
>>> a = b = 5>>> del a>>> aTraceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>NameError: name 'a' is not defined>>> b5
Zde vidíme, že odkaz na proměnnou a byl smazán. Není tedy již definována. Ale b stále existuje.
del
se také používá k mazání položek ze seznamu nebo slovníku:
>>> a = >>> del a>>> a
if, else, elif
if, else, elif
se používají pro podmíněné větvení nebo rozhodování.
Když chceme otestovat nějakou podmínku a provést blok pouze tehdy, je-li podmínka pravdivá, pak použijeme if
a elif
. elif
je zkratka pro else if. else
je blok, který se provede, pokud je podmínka nepravdivá. To bude zřejmé z následujícího příkladu:
def if_example(a): if a == 1: print('One') elif a == 2: print('Two') else: print('Something else')if_example(2)if_example(4)if_example(1)
Výstup
TwoSomething elseOne
Zde funkce kontroluje vstupní číslo a vypíše výsledek, pokud je 1 nebo 2. V tomto případě se jedná o blok, který se skládá ze dvou bloků. Jakýkoli jiný vstup než tento způsobí, že se vykoná else
část kódu.
Další informace o příkazech if a if…else v jazyce Python.
except, raise, try
except, raise, try
se v jazyce Python používají s výjimkami.
Výjimky jsou v podstatě chyby, které naznačují, že se při provádění našeho programu něco pokazilo. IOError
, ValueError
, ZeroDivisionError
, ImportError
, NameError
, TypeError
atd. je několik příkladů výjimek v jazyce Python. K zachycení výjimek se v jazyce Python používají bloky try...except
.
Vyvolat výjimku můžeme explicitně pomocí klíčového slova raise
. Následuje příklad:
def reciprocal(num): try: r = 1/num except: print('Exception caught') return return rprint(reciprocal(10))print(reciprocal(0))
Výstup
0.1Exception caughtNone
Zde funkce reciprocal()
vrací reciproké číslo vstupu.
Pokud zadáme 10, dostaneme normální výstup 0,1.
Pokud zadáme 10, dostaneme normální výstup. Když ale zadáme 0, automaticky se vyvolá ZeroDivisionError
.
To zachytí náš blok try…except
a my vrátíme None
. Mohli jsme také explicitně vyvolat ZeroDivisionError
kontrolou vstupu a ošetřit ji jinde takto:
if num == 0: raise ZeroDivisionError('cannot divide')
konečně
finally
Používá se s blokem try…except
pro uzavření zdrojů nebo proudů souborů.
Použití finally
zajistí, že se blok kódu uvnitř něj provede, i když dojde k neobsluhované výjimce. Například:
try: Try-blockexcept exception1: Exception1-blockexcept exception2: Exception2-blockelse: Else-blockfinally: Finally-block
Pokud se v bloku Try-block
vyskytne výjimka, je zpracována v bloku except
nebo else
. Ale bez ohledu na to, v jakém pořadí probíhá provádění, si můžeme být jisti, že Finally-block
se provede i v případě, že dojde k chybě. To je užitečné při čištění prostředků.
Přečtěte si více o zpracování výjimek v programování v jazyce Python.
pro
for
se používá pro cyklování. Obecně používáme for
, když známe počet cyklů, které chceme zacyklit.
V jazyce Python jej můžeme použít s libovolným typem posloupnosti, například se seznamem nebo řetězcem. Zde je příklad, ve kterém se for
používá k procházení seznamu jmen:
names = for i in names: print('Hello '+i)
Výstup
Hello JohnHello MonicaHello StevenHello Robin
Další informace o cyklu v jazyce Python.
z, klíčové slovo import
import
se používá k importu modulů do aktuálního jmenného prostoru. from…import
Používá se k importu konkrétních atributů nebo funkcí do aktuálního jmenného prostoru. Například:
import math
importuje modul math
. Nyní můžeme uvnitř něj použít funkci cos()
jako math.cos()
. Pokud bychom však chtěli importovat pouze funkci cos()
, můžeme to provést pomocí from
as
from math import cos
teď můžeme funkci použít jednoduše jako cos()
, nemusíme psát math.cos()
.
Další informace o modulech Pythonu a příkazu import.
global
global
slouží k deklaraci, že proměnná uvnitř funkce je globální (mimo funkci).
Potřebujeme-li přečíst hodnotu globální proměnné, není nutné ji definovat jako global
. To je srozumitelné.
Potřebujeme-li změnit hodnotu globální proměnné uvnitř funkce, musíme ji deklarovat pomocí global
. Jinak se vytvoří lokální proměnná s tímto názvem.
Následující příklad nám to pomůže objasnit.
globvar = 10def read1(): print(globvar)def write1(): global globvar globvar = 5def write2(): globvar = 15read1()write1()read1()write2()read1()
Výstup
1055
Zde funkce read1()
právě čte hodnotu globvar
. Nemusíme ji tedy deklarovat jako global
. Funkce write1()
však hodnotu upravuje, takže proměnnou musíme deklarovat jako global
.
Ve výstupu vidíme, že úprava skutečně proběhla (10 se změnilo na 5). O modifikaci této hodnoty se pokouší také write2()
. My jsme ji však nedeklarovali jako global
.
Vytvořila se tedy nová lokální proměnná globvar
, která není mimo tuto funkci vidět. Přestože tuto lokální proměnnou změníme na hodnotu 15, globální proměnná zůstane nezměněna. To je jasně vidět na našem výstupu.
in
in
slouží k testování, zda posloupnost (seznam, tuple, řetězec atd.) obsahuje hodnotu. Pokud je hodnota přítomna, vrací True
, jinak vrací False
. Například:
>>> a = >>> 5 in aTrue>>> 10 in aFalse
Druhotným použitím in
je procházení posloupnosti ve smyčce for
.
for i in 'hello': print(i)
Výstup
hello
is
is
se v Pythonu používá k testování identity objektu. Zatímco operátor ==
slouží k testování, zda jsou si dvě proměnné rovny či nikoli, operátor is
slouží k testování, zda se obě proměnné vztahují ke stejnému objektu.
Vrací True
, pokud jsou objekty totožné, a False
, pokud tomu tak není.
>>> True is TrueTrue>>> False is FalseTrue>>> None is NoneTrue
Víme, že v Pythonu existuje pouze jedna instance True
, False
a None
, takže jsou identické.
>>> == True>>> is False>>> {} == {}True>>> {} is {}False
Prázdný seznam nebo slovník se rovná jinému prázdnému. Nejsou to však identické objekty, protože jsou v paměti umístěny odděleně. Je to proto, že seznam a slovník jsou mutovatelné (hodnotu lze měnit).
>>> '' == ''True>>> '' is ''True>>> () == ()True>>> () is ()True
Na rozdíl od seznamu a slovníku jsou řetězec a tuple neměnné (hodnotu nelze měnit, jakmile jsou definovány). Proto jsou dva stejné řetězce nebo tuply také identické. Odkazují na stejné místo v paměti.
lambda
lambda
slouží k vytvoření anonymní funkce (funkce bez jména). Jedná se o inline funkci, která neobsahuje příkaz return
. Skládá se z výrazu, který je vyhodnocen a vrácen. Například:
a = lambda x: x*2for i in range(1,6): print(a(i))
Výstup
246810
Tady jsme vytvořili inline funkci, která zdvojnásobuje hodnotu, pomocí příkazu lambda
. Použili jsme ji ke zdvojnásobení hodnot v seznamu obsahujícím 1 až 5.
Další informace o funkci lamda v jazyce Python.
nonlocal
Použití klíčového slova nonlocal
je velmi podobné klíčovému slovu global
. nonlocal
se používá k deklaraci, že proměnná uvnitř vnořené funkce (funkce uvnitř funkce) není lokální, což znamená, že leží ve vnější vnořené funkci. Pokud potřebujeme změnit hodnotu nelokální proměnné uvnitř vnořené funkce, musíme ji deklarovat pomocí nonlocal
. Jinak se uvnitř vnořené funkce vytvoří lokální proměnná s tímto názvem. Následující příklad nám to pomůže objasnit.
def outer_function(): a = 5 def inner_function(): nonlocal a a = 10 print("Inner function: ",a) inner_function() print("Outer function: ",a)outer_function()
Výstup
Inner function: 10Outer function: 10
Zde je inner_function()
vnořena uvnitř outer_function
.
Proměnná a je v outer_function()
. Pokud ji tedy chceme upravit v inner_function()
, musíme ji deklarovat jako nonlocal
. Všimněte si, že a není globální proměnná.
Z výstupu tedy vidíme, že proměnná byla úspěšně změněna uvnitř vnořeného inner_function()
. Výsledek nepoužití klíčového slova nonlocal
je následující:
def outer_function(): a = 5 def inner_function(): a = 10 print("Inner function: ",a) inner_function() print("Outer function: ",a)outer_function()
Výstup
Inner function: 10Outer function: 5
Zde nedeklarujeme, že proměnná a uvnitř vnořené funkce je nonlocal
. Proto se vytvoří nová lokální proměnná se stejným názvem, ale nelokální a se nezmění, jak je vidět na našem výstupu.
pass
pass
je v Pythonu nulový příkaz. Při jeho provedení se nic nestane. Používá se jako zástupný příkaz.
Předpokládejme, že máme funkci, která ještě není implementována, ale chceme ji v budoucnu implementovat. Jednoduchým zápisem,
def function(args):
uprostřed programu získáme IndentationError
. Místo toho zkonstruujeme prázdné tělo příkazem pass
.
def function(args): pass
To samé můžeme udělat i v prázdném class
.
class example: pass
příkazreturn
return
se používá uvnitř funkce k jejímu ukončení a vrácení hodnoty.
Pokud hodnotu nevracíme explicitně, vrátí se automaticky None
. To si ověříme na následujícím příkladu.
def func_return(): a = 10 return adef no_return(): a = 10print(func_return())print(no_return())
Výstup
10None
while
while
se v Pythonu používá pro cyklování.
Příkazy uvnitř cyklu while
se vykonávají tak dlouho, dokud se podmínka cyklu while
nevyhodnotí jako False
nebo dokud nenarazíme na příkaz break
. Následující program to ilustruje.
i = 5while(i): print(i) i = i – 1
Výstup
54321
Všimněte si, že 0 se rovná False
.
Další informace o cyklu while v jazyce Python.
s
with
Příkaz se používá k zabalení provádění bloku kódu do metod definovaných správcem kontextu.
Správce kontextu je třída, která implementuje __enter__
a __exit__
metody. Použití příkazu with
zajistí, že metoda __exit__
bude zavolána na konci vnořeného bloku. Tento koncept je podobný použití bloku try…finally
. Zde je příklad:
with open('example.txt', 'w') as my_file: my_file.write('Hello world!')
Tento příklad zapíše text Hello world!
do souboru example.txt
. Souborové objekty mají v sobě definovány metody __enter__
a __exit__
, takže fungují jako vlastní správce kontextu.
Nejprve se zavolá metoda __enter__
, pak se provede kód uvnitř příkazu with
a nakonec se zavolá metoda __exit__
. Metoda __exit__
je volána i v případě, že dojde k chybě. V podstatě uzavře proud souboru.
yield
yield
se používá uvnitř funkce jako příkaz return
. Ale yield
vrací generátor.
Generátor je iterátor, který generuje po jedné položce. Velký seznam hodnot zabere hodně paměti. Generátory jsou v této situaci užitečné, protože generují vždy jen jednu hodnotu místo ukládání všech hodnot do paměti. Například
>>> g = (2**x for x in range(100))
vytvoří generátor g, který generuje mocniny čísla 2 až po číslo dvě zvýšené na mocninu 99. Čísla můžeme generovat pomocí funkce next()
, jak je uvedeno níže.
>>> next(g)1>>> next(g)2>>> next(g)4>>> next(g)8>>> next(g)16
A tak dále… Tento typ generátoru vrací příkaz yield
z funkce. Zde je příklad:
def generator(): for i in range(6): yield i*ig = generator()for i in g: print(i)
Výstup
.