Nauč se Python > Kurzy > Hadí workshop pro PyLadies > Úvod do Pythonu > Převádění typů

Převádění typů

Pojď zkusit něco nového: zjistit délku čísla stejným způsobem, jakým jsi zjišťovala délku svého jména. Zadej len(304023) a stiskni Enter:

>>> len(304023)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

Zobrazila se ti chyba! Ta říká, že objekty typu int (zkratka anglického integer, celé číslo) nemají délku. Co můžeš udělat teď? Možná můžeš zkusit napsat číslo jako řetězec? Řetězce mají délku, že?

>>> len("304023")
6

Jde to ale i bez uvozovek Existuje i funkce, která převede číslo na řetězec. Jmenuje se str:

>>> str(304023)
"304023"
>>> len(str(304023))
6

Když zadáváš číslo přímo, bude asi příjemnější použít uvozovky. Funkce str ale začne být užitečnější až budeš chtít výpočet čísla přenechat Pythonu:

>>> str(304023 * 12345 * 83845)
'314684030130075'
>>> len(str(304023 * 12345 * 83845))
15

Podobně jako str převádí na řetězce, funkce int převádí věci na celá čísla:

>>> int("304023")

Číslo na text můžeš převést vždy, ale naopak to vždy nejde. Co se stane, když se pokusíš na číslo převést řetězec bez číslic – třeba 'ahoj'?

Řešení


Toto je stránka lekce z kurzu, který probíhá nebo proběhl naživo s instruktorem.