Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

2. díl - Proměnné, základní datové typy a funkce

Python Základní konstrukce Proměnné, základní datové typy a funkce

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V minulé lekci, Úvod do Pythonu, jsme si řekli něco o tomto jazyku, ukázali IDLE a naučili jsme se základní matetické operátory. V dnešním tutoriálu si ukážeme proměnné, základní datové typy a napíšeme si první konzolové aplikace. Samozřejmě nebude chybět cvičení :-)

Typový systém

Existují dva základní typové systémy: statický a dynamický.

Dynamický typový systém nás plně odstiňuje od toho, že proměnná má vůbec nějaký datový typ. Ona ho samozřejmě vnitřně má, ale jazyk to nedává najevo. Dynamické typování jde mnohdy tak daleko, že proměnné nemusíme ani deklarovat, jakmile do nějaké proměnné něco uložíme a jazyk zjistí, že nebyla nikdy deklarována, sám ji založí. Do té samé proměnné můžeme ukládat text, potom objekt uživatele a potom desetinné číslo. Jazyk se s tím sám popere a vnitřně automaticky mění datový typ. V těchto jazycích jde vývoj rychleji díky menšímu množství kódu, zástupci jsou např. PHP nebo Ruby.

Statický typový systém naopak striktně vyžaduje definovat typ proměnné a tento typ je dále neměnný. Jakmile proměnnou jednou deklarujeme, není možné její datový typ změnit. Jakmile se do textového řetězce pokusíme uložit objekt uživatel, dostaneme vynadáno.

Python je dynamicky typovaný jazyk, proměnné nemusíme deklarovat s jejich datovým typem. Díky tomu je vývoj v jazyce rychlejší a jazyk se ze začátku lépe osvojuje.

Proměnné

V Pythonu jsou proměnné brány jako odkazy na objekty, díky čemuž je můžeme používat ve funkcích a volat na nich metody (ukážeme si později). Proměnná nám většinou uchovává nějakou hodnotu určitého (datového) typu.

Základní datové typy

Celé číslo

Anglicky integer, zkratka int - uchovává v paměti celé číslo, jehož velikost je limitována pouze pamětí počítače.

Desetinné číslo

Anglicky floating point number, zkratka float - uchovává v paměti desetinné číslo, není však neomezeně přesné. U desetinných čísel se nepíše čárka, ale tečka. Čísla začínající nulou se dají psát bez nuly. Např. 0.25 se dají psát jako .25 .

Řetězec

Anglicky string, zkratka str - uchovává v paměti řetězec (sled znaků - např. slovo). Definuje se tak, že se výraz, který uchovává, zapíše do uvozovek. Buď jednoduchých ' ', nebo do dvojitých " ".

Datové typy deklarovat nemusíme, pokud nechceme nějaké speciální.

Hodnoty uložené v proměnných

Teď si otevřte pythonovskou konzoli nebo IDLE. Vytvoříme si naši první proměnnou:

>>> a = 1

Máme a, což je odkaz na objekt o hodnotě 1. Zkusíme zvýšit hodnotu proměnné o jednu:

>>> a = a + 1

A teď vypíšeme hodnotu a:

>>> a
2

Proměnných můžeme i více. Přidáme si proměnnou b.

>>> b = 3

A nyní vydělíme b proměnnou a a to celé uložíme do c:

>>> c = b / a

Kolik je c ?

>>> c
1.5

Někoho z vás možná napadne, že c nebude celé číslo. Python si určí, jakého typu bude proměnná. Zjistit typ proměnné můžeme funkcí type():

>>> type(c)
<class 'float'>

Proměnná c je desetinné číslo!

Velikost písmen

Teď ještě vsuvka ohledně velikosti písmen:

>>> a = 1
>>> A = 2
>>> a
1
>>> A
2

Python na rozdíl od některých jiných jazyků, rozlišuje velikost písmen u proměnných, takže a a A jsou úplně jiné proměnné!

Hello World!

V téměř každém jazyce je první aplikace Hello World! - neboli Ahoj světe! My si ji také vytvoříme. Otevřte si IDLE -> dále pak file -> New File (nebo můžete stisknout CTRL + N). Vyskočí vám nové okno. Tam zapíšeme následující kód, který si hned vysvětlíme:

Hello World v Pythonu

První řádek je komentář, který zároveň slouží k spuštění interpretu (Pythonu) na unixových systémech. Komentář začíná # a Python dále ignoruje co je za ním (na řádce). Poté následuje mezera pro přehlednost. Na další řádce je funkce print(). Tato funkce zobrazí řetězec nebo číslo v konzoli. Další je funkce input(), která přijímá vstup od uživatele jako řetězec (v tomto případě čeká na stisk klávesy, jinak by se okno okamžitě zavřelo).

Pokud program spustíte, dostanete toto:

Hello World v Pythonu

Teď zkuste zapsat do vašeho nového programu tento kód a ten poté uložte a spusťte:

#!/usr/bin/env python3

print("Já jsem první řádka.")
print("A já druhá.")
input()

Konzole zobrazí tento výsledek:

Hello World v Pythonu

Máte menší problém. Funkce print() po vypsání textu ukončí řádek. Pokud byste chtěli další výstup "vytisknout" na ten samý řádek, tak máte (zatím) smůlu. Později si ukážeme, jak si přizpůsobit funkci print() k obrazu svému. Funkce print() ale dokáže vypsat více textu najednou, stačí oddělit text čárkou:

#!/usr/bin/env python3

print("Já jsem první část textu", "a já druhá!")
input()

Teď si ukážeme, že i řetězce lze "sčítat":

#!/usr/bin/env python3

print("Já jsem první část textu" + " " + "a já druhá!")
input()

Výstup do konzole je pokaždé stejný a vypadá takto:

Výstup do konzole v Pythonu

Ozvěna

Teď si vytvoříme program ozvěna. Uživatel zadá vstup do konzole a tento vstup se mu vypíše dvakrát. Těžké? Jdeme na to!

#!/usr/bin/env python3

print("Ozvěna!") #vypíše Ozvěna!
slovo = input("Zadejte slovo: ") #získá od uživatele vstup a uloží jej do proměnné
výsledek = slovo + " " + slovo # vytvoří novou proměnnou
print(výsledek)
input()

Zde je ukázka:

Výstup do konzole v Pythonu

Parsování

Funkce input() vrací řetězec. Ale co když potřebujeme dostat od uživatele například číslo?

Musíme provést tzv. parsování. Číslo vytvoříme z řetězce (nebo z něčeho jiného) pomocí vestavěné funkce int(). Naopak můžeme převést číslo (nebo něco jiné - např. desetinné číslo) na řetězec pomocí funkce str(). A teď praxe:

Program zdvojnásobovač

#!/usr/bin/env python3

print("Zdvojnásobovač!")
číslo = int(input("Zadejte číslo: ")) # řetězec z input() se převede na celé číslo
print("Jeho dvojnásobek je:", 2 * číslo)
input()

Zde je příklad:

Parsování v Pythonu

Kalkulačka

Teď si vytvoříme konzolovou aplikaci, která dokáže sčítat, odčítat, násobit a dělit dvě čísla.

#!/usr/bin/env python3

print("Kalkulačka\n")
první_číslo = int(input("Zadejte první číslo: "))
druhé_číslo = int(input("Zadejte druhé číslo: "))
print("Jejich součet je:", první_číslo + druhé_číslo)
print("Jejich rozdíl je:", první_číslo - druhé_číslo)
print("Jejich součin je:", první_číslo * druhé_číslo)
print("Jejich podíl je:", první_číslo / druhé_číslo)
input("\nStiskněte libovolnou klávesu...")

Znak \n v textu způsobí, že se text odřádkuje. To znamená, že text za tímto znakem se zobrazí na další řádce (v tomto případě se udělá prázdný řádek, jelikož za tímto znakem nic nenásleduje).

Pokud budete mít v Pythonu víceslovné názvy proměnných, doporučuje se oddělovat názvy podtržítkem.

Nyní si ukážeme, jak kalkulačka vypadá:

Kalkulačka v Pythonu

Tak a to je pro tuto lekci vše. V lekci příští, Booleovské hodnoty, logické operátory a větvení v Pythonu, se podíváme na větvení programu pomocí if, elif a else; výraz in a dále si ukážeme booleovské hodnoty, logické operátory a napíšeme si pár dalších programů.


 

 

Článek pro vás napsal gcx11
Avatar
Jak se ti líbí článek?
27 hlasů
(^_^)
Miniatura
Předchozí článek
Úvod do Pythonu
Miniatura
Všechny články v sekci
Základní konstrukce jazyka Python
Miniatura
Následující článek
Cvičení k 1. a 2. lekci Pythonu
Aktivity (2)

 

 

Komentáře
Zobrazit starší komentáře (38)

Avatar
Jaroslav Trojan:18. dubna 8:19

Ahoj, když napíšu program, jak ho spustím ? Děkuji.

 
Odpovědět 18. dubna 8:19
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Jaroslav Trojan
gcx11:18. dubna 9:17

Bud z IDLE, kde pouzijes klavesu F5 nebo z prikazove radky prikazem python <jmeno_programu>.py

 
Odpovědět 18. dubna 9:17
Avatar
Pluhtík
Člen
Avatar
Pluhtík:11. června 0:46

Zkouším Python a mám problém. Podle tohoto článku by Python měl sám poznat, o jaký se jedná datový typ. Jenže v mém programu to nepoznal a místo desetinného čísla mi používá integer, viz obrázek. Čím to je?

edit. přesněji Python mi vůbec nepovolí desetinná čísla, jak sami můžete vidět.

Editováno 11. června 0:48
 
Odpovědět 11. června 0:46
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Pluhtík
gcx11:11. června 12:41

Je to tím, že používáš starou verzi Pythonu.

 
Odpovědět 11. června 12:41
Avatar
Pluhtík
Člen
Avatar
Odpovídá na gcx11
Pluhtík:11. června 17:07

Pomůže přeinstalovat IDLE?

 
Odpovědět 11. června 17:07
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Pluhtík
Adam Ježek:11. června 18:02

Ano, ale musíš stáhnout IDLE pro Python 3.6, nikoli 2.7

Odpovědět  +1 11. června 18:02
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Pluhtík
Člen
Avatar
Pluhtík:11. června 22:44

Už tu ta otázka jednou byla, ale odpověď na ni není - proč se mi program po stisku F5 spouští v IDLE a ne v příkazovém řádku?

 
Odpovědět 11. června 22:44
Avatar
Matej Sigut
Člen
Avatar
Matej Sigut:14. července 20:16

Syntaxe jsou vybarveny podle Notepad+ +, ne podle Python IDLE.

 
Odpovědět 14. července 20:16
Avatar
hanpari
Redaktor
Avatar
Odpovídá na Pluhtík
hanpari:14. července 21:27

Pokud píšeš v Idle a stisknes F5, je to totéž jako napsat do příkazové řádky:

>>> python -i soubor.py

Můžeš dál pracovat se spuštěným programem. Což Idle předpokládá, že budeš chtít dělat.

Pokud chceš nechat program jen jednou proběhnout do konce, pak z příkazové řádky napiš:

>>> python soubor.py

 
Odpovědět  +1 14. července 21:27
Avatar
hricov.martin:17. července 21:44

Mám problém so spustením programu vždy keď ho spustím tak mi vyskočí toto okno a nie cmd.

 
Odpovědět 17. července 21:44
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 48. Zobrazit vše