forked from podlomar/uvod-do-progr
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Kapitola Čtení z terminálu
- Loading branch information
Showing
2 changed files
with
78 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
## Čtení z terminálu | ||
|
||
Náš program zatím umí převést na koruny pouze cenu lístku. Uvažujme ale, že vytváříme | ||
program pro směnárnu, který by měl umět převést libovolnou částku dle přání zákazníka. | ||
Náš program by se tedy měl na začátku zeptat uživatele, jaká částka má být převedena. | ||
K tomu slouží funkce `input()`. Jako vstup zadáme zprávu, která se má zobrazit uživateli, | ||
aby věděl, jakou informaci program očekává. | ||
|
||
Důležité je, že funkce `input()` vždy vrací hodnotu vloženou uživatelem jako typ **řetězec**, | ||
a to i v případě, že uživatel zadal pouze čísla. Na číslo musíme hodnotu **převést**. K tomu | ||
využijeme funkci `int()`, která nemění hodnotu vstupu, ale **mění typ hodnoty**, v tomto případě | ||
převádí řetězec na celé číslo. | ||
|
||
```python | ||
kurz = 25 | ||
euro = input("Zadej počet euro: ") | ||
euro = int(euro) | ||
cena = euro * kurz | ||
``` | ||
|
||
### Komentáře | ||
|
||
K využití funkcí můžeme přidat vysvětlující poznámku, kterou označujeme jako **komentář**. | ||
Komentář je řádka programu, která má programátorům pomoci se v programu zorientovat a při | ||
samotném spuštění ji Python ignoruje. Komentář začítáme symbolem `#` a za něj můžeme | ||
napsat cokoli. | ||
|
||
```python | ||
kurz = 25 | ||
# Získávám hodnotu od uživatele | ||
euro = input("Zadej počet euro: ") | ||
# Je potřeba převést řetězec na číslo | ||
euro = int(euro) | ||
cena = euro * kurz | ||
``` | ||
|
||
### Složitější výpis | ||
|
||
Tento program sice výsledek spočítá, ale nevypíše. K vypsání můžeme použít funkci `print()`. | ||
Ve výpisu potřebujeme zkombinovat vysvětlující text a peněžní částku. Jednotlivé informace | ||
oddělíme čárkami. Funkce `print()` je spojí dohromady do jednoho textu a oddělí mezerami, ty | ||
tedy nemusíme do výpisu přidávat. | ||
|
||
```python | ||
print("Cena je", cena, "Kč.") | ||
``` | ||
|
||
Pokud by nám toto chování nevyhovovalo a chceme si o mezerách rozhodnout sami, můžeme | ||
použít vstup `sep` (od anglického slova :term{cs="oddělovač" en="separator"}). | ||
Ten musíme napsat i **se jménem** a vždy až **na konec**, | ||
aby funkce věděla, že se nejedná o další text k vypsání. | ||
Nyní již musíme mezery přidat do řetězců v uvozovkách, aby se ve výpisu objevily. | ||
|
||
```python | ||
print("Cena je ", cena, " Kč.", sep="") | ||
``` | ||
|
||
### Převod na řetězec | ||
|
||
Další možností, jak výpis provést, je použití operátorů `+` pro spojení více řetězců dohromady. | ||
Musíme ale myslet na to, že proměnná `cena` je typ číslo. Nyní tedy musíme provést | ||
obrácenou operaci, než jsou dělá funkce `int()`, a to je **převod čísla na řetězec**. | ||
K převodu slouží funkce `str()`. Jakmile máme všechny hodnoty převedené na řetězec, můžeme | ||
je spojit dohromady pomocí `+`. | ||
|
||
```python | ||
cena = str(cena) | ||
print("Cena je " + cena + " Kč.") | ||
``` | ||
|
||
Oba řádky je možné spojit do jednoho a provést převod na řetězec uvnitř funkce `print()`. | ||
Pokud ti ale tento zápis připadá příliš složitý, není vůbec problém nechat jej | ||
rozdělený na dva řádky. | ||
|
||
```python | ||
print("Cena je " + str(cena) + " Kč.") | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters