Skip to content

Commit 74c29ab

Browse files
committed
Reword lesson on interfaces
1 parent b029303 commit 74c29ab

File tree

2 files changed

+23
-31
lines changed

2 files changed

+23
-31
lines changed

courses/pyladies.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ plan:
7979
materials:
8080
- lesson: beginners/exceptions
8181
- lesson: beginners/modules
82-
- lesson: beginners/circular-imports
82+
# XXX when homework is added, include lesson: beginners/circular-imports
8383
- title: Výjimkový tahák
8484
url: https://pyvec.github.io/cheatsheets/exceptions/exceptions-cs.pdf
8585
type: cheatsheet

lessons/beginners/interfaces/index.md

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,33 @@ panelu nebo k atomové elektrárně.
2121
Zásuvka poskytuje elektrický proud, a jsou u ní důležité určité parametry
2222
(tvar, napětí, frekvence, maximální proud) na kterých se obě strany,
2323
poskytovatel proudu i spotřebič, shodly.
24+
Tyhle parametry tvoří *rozhraní*, které umožňuje připojit jakýkoli spotřebič
25+
k jakékoli elektrárně.
2426

2527

26-
# Funkce jako rozhraní
28+
## Rozhraní funkce
2729

2830
Podívej se na tuhle hlavičku funkce.
29-
Víš z ní, co ta funkce dělá a jak ji použít?
31+
Je z ní poznat, co ta funkce dělá a jak ji použít?
3032

3133
```python
3234
def ano_nebo_ne(otazka):
3335
"""Zeptá se uživatele na otázku a vrátí True nebo False dle odpovědi"""
36+
...
3437
```
3538

36-
Podobnou funkci už jsi napsal{{a}}; víš že „vevnitř“ volá `input` a ptá se na
37-
příkazové řádce.
39+
Podobnou funkci už jsi napsal{{a}}.
40+
Když zavoláš `ano_nebo_ne('Chutná ti čokoláda?')`, otázka se objeví
41+
na příkazové řádce.
42+
Když uživatel odpoví, funkce vrátí True nebo False.
3843

39-
Co kdybys ale měla následující funkci?
44+
Co kdybys ale měl{{a}} následující funkci?
4045

4146
```python
4247
def ano_nebo_ne(otazka):
4348
"""Ukáže tlačítka "Ano" a "Ne" a až uživatel jedno zmáčkne, vrátí True
4449
nebo False dle stisknutého tlačítka."""
50+
...
4551
```
4652

4753
<img src="{{ static('yn.png') }}" alt="Screenshot s tlačítky Ano a Ne" style="display:block;float:right;">
@@ -51,10 +57,10 @@ okýnko se dvěma tlačítky.
5157
Když uživatel jedno zmáčkne, funkce vrátí True nebo False.
5258

5359
Z hlediska programu se nic nemění: jediné co se změní je *definice funkce*;
54-
volání je pak stejné jako dřív.
60+
volání a práce s návratovou hodnotou je pak stejné jako dřív.
5561

5662

57-
# Vyzkoušej si to!
63+
### Vyzkoušej si to!
5864

5965
Najdi nějaký svůj program, který používá `ano_nebo_ne`, případně jen `print`
6066
a `input`.
@@ -80,36 +86,22 @@ vyndej, aby se použily ty naimportované.
8086
8187
Program by měl fungovat stejně jako dřív!
8288

83-
Je to tím, že tyto funkce mají stejné rozhraní jako jejich dřívější protějšky,
84-
tedy:
89+
Je to tím, že tyto funkce mají stejné *rozhraní* jako jejich dřívější protějšky.
90+
Rozhraní funkce tvoří všechno, co potřebuje kód který funkce volá:
8591

8692
* jméno, kterým se funkce volá,
8793
* argumenty, které bere (např. `input` bere otázku jako řetězec; `print`
8894
může brát více argumentů k vypsání), a
89-
* návratovou hodnotu, se kterou program pracuje dál (např. `input` vrací
95+
* návratová hodnota, se kterou program pracuje dál (např. `input` vrací
9096
řetězec; `print` nevrací nic smysluplného).
9197

92-
Většina z těchto informací je přímo v hlavičce funkce.
98+
Nékteré z těchto informací musíš do hlavičky funkce napsat vždy.
9399
Ty ostatní je dobré popsat v dokumentačním řetězci, aby ten, kdo chce funkci
94100
použít, věděl jak na to.
95101

96102

97-
# Je to dobrý nápad?
98-
99-
Modul `tkui` je jen ilustrační. Nedoporučuju ho používat.
100-
101-
Příkazová řádka je dělaná tak, aby byla užitečná pro programátory.
102-
Až se naučíš základy a vytvoříš nějaký skvělý program, přijde čas
103-
k logice (tzv. *backendu*) přidat část, která bude lépe použitelná pro
104-
uživatele – tedy okýnko nebo webovou stránku (tzv. *frontend*).
105-
106-
Udělat hezké a funkční *uživatelské* rozhraní je ovšem většinou celkem složité,
107-
a často se dělá až potom, co jsou samotné „vnitřnosti“ funkční a otestované.
108-
Doporučuju postupovat stejně, když se programování učíš: zůstaň u základních
109-
`print` a `input`, dokud nezvládneš samotné programování.
110-
A pak se můžeš naučit něco nového!
111-
112-
Co si ale z této lekce odnes je koncept rozhraní: při zachování několika
113-
informací z hlavičky je možné vyměnit funkci za něco úplně jiného.
114-
A stejně tak je možné jednu funkci (třeba `input`) volat ze spousty různých
115-
programů, pokud znáš její rozhraní.
103+
> [note]
104+
> Modul `tkui` je jen ilustrační. Je udělaný tak, aby se dobře “instaloval”
105+
> spíš než aby ti pomohl psát reálné programy.
106+
> V tomto kurzu se vrátíme zpět k příkazové řádce, která je dělaná tak
107+
> aby byla užitečná pro programátory.

0 commit comments

Comments
 (0)