Kontrola typu objektu v Pythonu
Chcete-li zkontrolovat typ prvku, je třeba použít
funkci isinstance. Jako první
parametr přijímá prvek a jako druhý -
typ, na který se kontroluje. Přitom
jako název pro druhý parametr
se berou jména funkcí, které převádějí data
na odpovídající typ: pro řetězce - str,
čísla - int, seznamy - list
atd. Funkce isinstance vrací
logické hodnoty: pokud prvek odpovídá
typu, vrátí se True, v opačném
případě - False.
Příklad
Předpokládejme, že máme proměnnou tst.
Pojďme zkontrolovat, zda je její hodnota
řetězcem. K tomu napíšeme napravo od if
funkci isinstance. Do
jejích parametrů předáme tst a typ
str. Pokud se hodnota a typ dat
shodují, nechť se vypíše odpovídající
zpráva:
tst = 'a'
if isinstance(tst, str):
print('string')
Výsledek provedení kódu:
'string'
Příklad
Nyní zkontrolujeme, zda je proměnná celé číslo:
tst = 12
if isinstance(tst, int):
print('integer')
Výsledek provedení kódu:
'integer'
Příklad
Chcete-li zkontrolovat, zda je tst
číslem s plovoucí desetinnou čárkou, měl by se do druhého
parametru isinstance předat
typ float:
tst = 12.0
if isinstance(tst, float):
print('float')
Výsledek provedení kódu:
'float'
Příklad
Nyní napišme podmínku pro
kontrolu, zda je tst seznamem:
tst = [1, 2, 3]
if isinstance(tst, list):
print('list')
Výsledek provedení kódu:
'list'
Příklad
Pojďme zkontrolovat, zda je proměnná n-tice (tuple):
tst = (1, 2, 3)
if isinstance(tst, tuple):
print('tuple')
Výsledek provedení kódu:
'tuple'
Příklad
Nyní nastavme podmínku, abychom zjistili, zda je hodnota proměnné slovníkem:
tst = {'a': 1, 'b': 2, 'c': 3}
if isinstance(tst, dict):
print('dictionary')
Výsledek provedení kódu:
'dictionary'
Praktické úlohy
Předpokládejme, že máte proměnnou. Zkontrolujte, zda je její hodnota celé číslo.
Zjistěte, zda je zadaná proměnná číslem s plovoucí desetinnou čárkou.
Zkontrolujte, zda proměnná obsahuje řetězcovou hodnotu.
Zkontrolujte, zda je zadaná proměnná slovníkem.
Zkontrolujte, zda je zadaná proměnná množinou (set).
Zkontrolujte, zda je zadaná proměnná n-ticí (tuple).
Zkontrolujte, zda je zadaná proměnná seznamem.