Vestavěné datové typy
V programování je datový typ důležitým pojmem. Proměnné mohou ukládat data různých typů a různé typy mohou dělat různé věci.
Python má ve výchozím nastavení vestavěné následující datové typy v těchto kategoriích:
textový
numerické
seznamy
slovníky
množiny
pravdivostní
binární
speciální
str
int, float, complex
list, tuple, range
dict
set, frozenset
bool
bytes, bytearray, memoryview
NoneType
Zjištění datového typu
Datový typ libovolného objektu můžete získat pomocí type()
funkce:
x = 3
print(type(x))
Nastavení datového typu
V Pythonu je datový typ nastaven, když proměnné přiřadíte hodnotu:
příklad | datový typ |
---|---|
x = "nejkulaťoulinkatější" | str |
x = 99 | int |
x = 2.5 | float |
x = 1j | complex |
x = ["jablko", "hruška", "jahoda"] | list |
x = ("jablko", "hruška", "jahoda") | tuple |
x = range(4) | range |
x = {"jméno" : "Jiří", "věk" : 28} | dict |
x = {"jablko", "hruška", "jahoda"} | set |
x = frozenset({"jablko", "hruška", "jahoda"}) | frozenset |
x = True | bool |
x = b"Ahoj!" | bytes |
x = bytearray(5) | bytearray |
x = memoryview(bytes(5)) | memoryview |
x = None | NoneType |
Nastavení specifického datového typu
Pokud chcete určit datový typ, můžete použít následující funkce:
příklad | datový typ |
---|---|
x = str("nejkulaťoulinkatější") | str |
x = int(99) | int |
x = float(2.5) | float |
x = complex(3j) | complex |
x = list(("jablko", "hruška", "jahoda")) | list |
x = tuple(("jablko", "hruška", "jahoda")) | tuple |
x = range(4) | range |
x = dict("jméno":"Jiří", "věk":28) | dict |
x = set(("jablko", "hruška", "jahoda")) | set |
x = frozenset(("jablko", "hruška", "jahoda")) | frozenset |
x = bool(4) | bool |
x = bytes(5) | bytes |
x = bytearray(5) | bytearray |
x = memoryview(bytes(5)) | memoryview |
Čísla
Tři numerické typy int
, float
a complex
:
x = 99 # int je kladné nebo záporné celé číslo bez desetiných míst
y = 2.5 # float je kladné nebo záporné číslo s plovoucí desetinou čárkou
z = 3j # complex jsou komplexní čísla s imaginární částí "j"
print(x, type(x))
print(y, type(y))
print(z, type(z))
# stejný výstup pomocí f-stringu a znaku \n pro nový řádek
print(f"{x} {type(x)}\n{y} {type(y)}\n{z} {type(z)}")
# int
x = 1
y = 45819561289548912
z = -674139
print(f"{x} {type(x)}\n{y} {type(y)}\n{z} {type(z)}")
# float
x = 1.01
y = 1.0
z = -67.41
print(f"{x} {type(x)}\n{y} {type(y)}\n{z} {type(z)}")
# complex
x = 2+7j
y = 7j
z = -7j
print(f"{x} {type(x)}\n{y} {type(y)}\n{z} {type(z)}")
Přetypování
Lze změnit jeden typ na druhý pomocí metod int()
, float()
a complex()
:
x = 99 # int
y = 2.5 # float
a = float(x) # změna typu z int na float
b = int(y) # změna typu z float na int
c = complex(x) # změna typu z int na complex
print(f"{x} {type(x)}\n{y} {type(y)}\n{a} {type(a)}\n{b} {type(b)}\n{c} {type(c)}")
# Pozor na to, že u explicitního (vynuceného)
# přetypování dochází ke ztrátám informací!!!
Další příklady:
x = int(1) # 1
y = int(2.8) # 2
z = int("3") # 3
x = float(1) # 1.0
y = float(2.8) # 2.8
z = float("3") # 3.0
x = str("s1") # 's1'
y = str(2) # '2'
z = str(3.0) # '3.0'
Náhodné čísla
Python nemá funkci random()
, ale má modul random, který lze použít k vytváření náhodných čísel:
import random
print(random.randrange(1, 10)) # vygeneruje pseudonáhodné číslo mezi 1 až 9