V minulém díle jsme se naučily funkci input, která nám umožní, aby uživatel zadal text, číslo nebo nějaké hodnoty a my s nimi dále pracovaly v programu. Ukládaly je do proměnných, prováděly různé výpočty nebo je vkládaly do textu a mnoho dalších operací.
Problém ovšem nastává, když nám uživatel například zadá číslo a my sním potřebujeme pracovat jako s textem. K vyřešení těchto problémů slouží datové tipy a my se podíváme jaké datové tipy existují a jak je používat. Dále přidáme do dnešní lekce funkci len( ), na kterou se podíváme jako první.
Funkce len
Funkce len nám dokáže změřit počet znaků v řetězci. To znamená, že pokud mám nějaké slovo např. jméno Pavel, tato funkce změří kolik je v tomto jméně znaků. P = 1 A = 2 V = 3 E = 4 L = 5 funkce nám dá hodnotu 5 jelikož ve jméně Pavel je 5 znaků.
Pojďme si ukázat příklad jak funkce len ( ) vypadá
print(len("text"))
print(len("text "))Vyzkoušejte si kód spustit a uvidíte výsledek 4 a 5. To je z toho důvodu, že ve spodním řádku máme v textu mezeru a funkce len () nám spočítá i v textu i mezery.
Pojďme zkombinovat funkci len s tím co už známe. Protože umíme si říct o data od uživatele a umíme je zapsat do proměnné a zobrazit, tak si můžeme napsat program, který se nás zeptá na to jak se jmenujeme a řekne nám jak dlouhé je naše jméno.
#funkce len měří kolik má znaků můj řetězec
print(len("text")) # slovo text má 4 znaky proto výstup bude 4
print(len("text ")) #pokud přidám v textu mezeru výstup bude 5, prtože to započítá i mezeru
print(len(input("Zadejte své jméno: "))) #tři funkce v jednom řádku
name = input("Jak se jmenuješ?: ")
delka = len(name)
print(delka)Funkci len máme zvládnutou a nyní se můžeme podívat na datové tipy . Ty v Pythonu rozeznáváme 4.
- String
- Integer
- Float
- Boolean
#Datové typy
#String
print("123" + "123")
#integer
print( 123 + 123)
#float
print(3.14159)
#boolean
True
FalseString datový typ string je typ, ve kterém máme nějaký text. Pokud sečtu tyto dva typy, které vidíte v příkladu, nahoře dostanu výsledek 123123
Integer Integer je datový typ, ve kterém máme nějaké číslo. Pokud tyto typy sečtu jako v příkladu nahoře, dostanu výsledek 246
Float datový typ float je podobný, jako datový typ Integer, akorát se používá pro desetinná čísla.
Boolean je datový typ, který nám uchovává dvě hodnoty True a nebo False, pravda nebo nepravda. Lze si to představit jako žárovku buď je rozsvícená a nebo zhasnutá. Hodnoty můžeme mezi sebou porovnávat a k tomu potřebujeme porovnávací operátory.
| Rovnost | == |
| Je větší | > |
| Je menší | < |
| Je větší nebo rovno | >= |
| Je menší nebo rovno | <= |
| Není rovno | != |
x = 5
y = 8
print("x == y:", x == y)
print("x != y:", x != y)
print("x < y:", x < y)
print("x > y:", x > y)
print("x <= y:", x <= y)
print("x >= y:", x >= y)Zkuste spustit tento kód a podívejte se na výsledek. Ve funkci print se nám text v uvozovkách vypíše jako text, a kód za čárkou x == y se nám bude porovnávat a vypíší se nám výsledky pravda nepravda.

str( )
Občas potřebujeme pracovat s číslem jako s textem a zase číslo, které je zapsané jako text, tak potřebujeme použít jako číslo. To uděláme změnou datového typu.
Funkce string, kterou v kódu zapisujeme str( ) převede číslo na text
x = 12 # V proměné x máme uloženou hodnotu 12 print(x * 2) # Vypíše se nám kolik je 12 * 2, takže výstup bude 24 promenna_x = str(x) # string hodnoty x můžu uložit do další proměné x bude pořád číslo, ale promena_x bude text print(2 * promenna_x) # Vypíše se nám za sebou dvakrát číslo 12 protože v hodnotě promena_x je 12 text takže výstup bude 1212
Na začátku programu máme hodnotu x, která je 12. první řádek nám vynásobí 2 * 12 a výsledek bude 24.
Ve třetím řádku převedme hodnotu x na text a uložíme do proměnné promenna_x. Poslední řádek nám dvakrát vypíše text 12, tak výsledek bude 1212.
V datovém typu string můžeme jednoduše zjistit na které pozici se nachází jaký znak. Pojďme se podívat, jak to zjistíme.
print("Ahoj"[0])
print("Ahoj"[1])
print("Ahoj"[2])
print("Ahoj"[3])Pokud jste si kód zkusili spustit, pak víte, že výsledek vypadá takto.
- A – je na pozici 0
- H – je na pozici 1
- O – je na pozici 2
- J – je na pozici 3
Při zjišťování toho, jaký znak se nachází na které pozici je třeba dávat pozor na to, že Python počítá od nuly a ne od jedničky. Proto na pozici 0 je A a na pozici 1 je H.
int( )
Teď to zkusíme obráceně převedeme text na číslo pomocí funkce int( ).
x = str(input("Zadej cislo"))
print(x * 2)
int_x = int(x)
print(int_x * 2)Vyzkoušejte jak text funguje a vysvětlíme si, jak funguje převod textu na číslo.
x = str(input("Zadej cislo"))
print(x * 2)
int_x = int(x)
print(int_x * 2)Když už známe vnořené funkce, můžeme si do funkce string str() vnořit input, který nám umožní uložit do proměnné x hodnotu, kterou uživatel zadal a zároveň funkce str() tuto hodnotu převede na text.
To znamená, že když nám uživatel zadá číslo, tak my s ním můžeme pracovat pouze jako s textem. To při spuštění programu můžete vidět ve druhém řádku. Pokud zadáte hodnotu 15 Python vypíše 2x text 15 a výstup vypadá 1515
Pro provádění matematických operací potřebujeme x převést na číslo. To uděláme ve třetím řádku funkcí int( ), kde převedeme text na číslo.
Čtvrtý řádek nám vypíše 2x proměnnou int_x, do které jsme uložili text jako číslo, proto výstup bude 30.
Cvičení
Příklad číslo 1
Napiš program, který se tě zeptá na tvé jméno a příjmení a na konci ti napíše, kolik znaků má tvé jméno a kolik znaků má tvé příjmení.
Program by mohl vypadat takto:
Ahoj, zadej mi prosím tvé jméno
Zadej prosím tvé příjmení:
Tvé jméno je dlouhé 5 znaků a tvé příjmení je dlouhé 8 zanků.
Příklad číslo 2
Napiš program, do kterého zadáš dvojciferné číslo například číslo 59. Program sečte na konci obě čísla a vypíše výsledek. V případě čísla 59 bude program sčítat 5 + 9 = 14
# ? Tento kód neměň ?
dvouciferne_cislo = input("Zadej dvouciferne číslo: ")
# ? Tento kód neměň ?
####################################
#Sem piš svůj kód ?Příklad číslo 3
Naprogramuj jednoduchý BMI kalkulátor, který se tě zeptá na tvoji výšku, na tvoji váhu a následně spočítá tvé BMI a na konec ho vypíše. BMI vypočítáš pomocí tohoto vzorečku:
# ? Don't change the code below ?
vyska = input("Zadej svoji výšku v metrech: ")
vaha = input("Zadej svoji váhu v kilogramech: ")
# ? Don't change the code above ?
#Write your code below this line ?
BMI podle vzorečku: 80 kilový člověk měřící 180 centimetrů bude počítat své BMI takto 80 / 1.8 * 1.8
Protože BMI, které vypočítáš podle vzorečku bude mít s největší pravděpodobností mnoho desetinných čísel ukážeme si na závěr jak zaokrouhlovat.
Zaokrouhlovat můžeš pomocí funkce round( )
Ukážu ti, jak funkci round( ) použít a zkus ji použít i ve svém úkolu.
print(round(8/3)) #zaokrouhlení bez desetinného místa print(round(8/3,2)) #zaokrouhlení na dve desetinná místa print(round(8/3,3)) #zaokrouhlení na tři desetinná místa