Skip to content

Commit cac1be4

Browse files
authored
Updates from Brno's offline courses
#31
2 parents dfa88e5 + 90ba7a0 commit cac1be4

16 files changed

Lines changed: 211 additions & 119 deletions

File tree

courses/pyladies.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ sessions:
7171
slug: def
7272
materials:
7373
- lesson: beginners/def
74+
- lesson: beginners/prefer-return
7475
- lesson: beginners/nested-traceback
7576
- lesson: beginners/local-variables
7677

@@ -116,6 +117,7 @@ sessions:
116117
- lesson: beginners/range
117118
- lesson: beginners/zip-enumerate
118119
- lesson: beginners/files
120+
- lesson: beginners/with
119121

120122
- title: Grafika
121123
slug: pyglet

lessons/beginners/circular-imports/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ má: nekompletní, bez většiny funkcí co v něm mají
6060
být nadefinované.
6161
A až potom, co dokončí import `ai.py`,
6262
se vrátí k souboru `piskvorky.py`
63-
a pokračuje v provádění příkazů `def` které v něm jsou.
63+
a pokračuje v provádění příkazů `def`, které v něm jsou.
6464
Takový nekompletní modul může být občas užitečný,
6565
ale ve většině případů se chová skoro
6666
nepředvídatelně a tudíž nebezpečně.

lessons/beginners/cmdline/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ Na **macOS** vyber text myší a pak stiskni <kbd>⌘ Command</kbd>+<kbd>C</kbd>
280280
Na **Windows** v menu příkazové řádky (ikonce vlevo nahoře) vyber
281281
*Edit**Mark*, text vyber myší a zkopíruj pomocí <kbd>Enter</kbd>.
282282

283-
### Otevření v prohlížeče souborů
283+
### Otevření v prohlížeči souborů
284284

285285
Na **Linuxu** záleží na programu, který používáš. Buď:
286286
* zmáčkni <kbd>Ctrl</kbd>+<kbd>L</kbd> a jméno adresáře vlož pomocí

lessons/beginners/comparisons/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Tady je vidět, jak počítač dělá přesně, co se mu řekne. Nepřemýšlí
117117
Bylo by dobré uživateli, který zadá záporné číslo,
118118
přímo říct, že zadal blbost. Jak na to?
119119

120-
Nejdřív zkus nastavit proměnnou která bude `True`,
120+
Nejdřív zkus nastavit proměnnou, která bude `True`,
121121
když uživatel zadal kladné číslo.
122122

123123

lessons/beginners/def/index.md

Lines changed: 1 addition & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Potom následuje odsazené *tělo funkce* – příkazy, které funkce provádí
8282
Tělo může začít *dokumentačním řetězcem* (angl. *docstring*), který popisuje
8383
co funkce dělá.
8484
To může být jakýkoli řetězec, ale tradičně se uvozuje třemi uvozovkami
85-
(i v případě že je jen jednořádkový).
85+
(i v případě, že je jen jednořádkový).
8686

8787
Příkazem `return` pak můžeš z funkce *vrátit* nějakou hodnotu.
8888

@@ -193,97 +193,3 @@ else:
193193
> [note]
194194
> Stejně jako `if` nebo `break` je `return` *příkaz*, ne funkce.
195195
> Kolem „své“ hodnoty nepotřebuje závorky.
196-
197-
198-
### Vrátit nebo vypsat?
199-
200-
Podívejme se teď na následující program, který vypíše obsah elipsy:
201-
202-
```python
203-
from math import pi
204-
205-
def obsah_elipsy(a, b):
206-
return pi * a * b
207-
208-
print('Obsah elipsy s poloosami 3 a 5 je', obsah_elipsy(3, 5), 'cm2')
209-
```
210-
211-
Takový program se teoreticky dá napsat i s procedurou, tedy funkcí, která nic
212-
nevrací.
213-
Procedura může výsledek třeba vypsat na obrazovku:
214-
215-
```python
216-
from math import pi
217-
218-
def obsah_elipsy(a, b):
219-
print('Obsah je', pi * a * b) # Pozor, `print` místo `return`!
220-
221-
obsah_elipsy(3, 5)
222-
```
223-
224-
Program takhle funguje, ale přichází o jednu z hlavních výhod funkcí:
225-
možnost vrácenou hodnotu použít i jinak jež jen v `print`.
226-
227-
Funkci, která *vrací* výsledek, můžeš použít v dalších výpočtech:
228-
229-
```python
230-
def objem_eliptickeho_valce(a, b, vyska):
231-
return obsah_elipsy(a, b) * vyska
232-
233-
print(objem_eliptickeho_valce(3, 5, 3))
234-
```
235-
236-
... ale s procedurou, která výsledek přímo vypíše, by to nešlo.
237-
Proto je dobré psát funkce, které spočítané hodnoty vrací,
238-
a zpracování výsledku (např. vypsání) nechat na kód mimo funkci.
239-
240-
Další důvod proč hodnoty spíš vracet než vypisovat je ten, že jedna funkce se
241-
dá použít v různých situacích.
242-
Proceduru s `print` by nešlo rozumně použít tehdy, když nás příkazová
243-
řádka vůbec nezajímá – třeba v grafické hře, webové aplikaci, nebo pro ovládání
244-
robota.
245-
246-
Podobně je to se vstupem: když použiju v rámci své funkce `input`, bude se
247-
moje funkce dát použít jen v situacích, kdy je u počítače klávesnice a za ní
248-
člověk.
249-
Proto je lepší funkcím potřebné informace předávat jako argumenty
250-
a volání `input` (nebo čtení textového políčka či měření čidlem robota)
251-
nemít ve funkci, ale vně, v kódu, který funkci volá:
252-
253-
```python
254-
from math import pi
255-
256-
def obsah_elipsy(a, b):
257-
"""Vrátí obsah elipsy s poloosami daných délek"""
258-
# Jen samotný výpočet:
259-
return pi * a * b
260-
261-
# print a input jsou "venku":
262-
x = float(input('Zadej délku poloosy 1: '))
263-
y = float(input('Zadej délku poloosy 2: '))
264-
print('Obsah je', obsah_elipsy(x, y))
265-
```
266-
267-
Samozřejmě existují výjimky: procedura, která přímo vytváří textový výpis
268-
(např. tabulku), může používat `print`; funkce, která načítá textové informace
269-
(jako `ano_nebo_ne` výše), zase `input`.
270-
Když ale funkce něco *počítá*, nebo když si nejsi jist{{gnd('ý', 'á')}},
271-
je dobré ve funkci `print` ani `input` nemít.
272-
273-
274-
## None
275-
276-
Když funkce neskončí příkazem `return`,
277-
automaticky se vrátí hodnota `None`.
278-
279-
Je to hodnota zabudovaná přímo do Pythonu, podobně jako `True` nebo `False`,
280-
a znamená „nic“.
281-
282-
```python
283-
def nic():
284-
"""Tahle funkce nic nedělá """
285-
286-
print(nic())
287-
```
288-
289-
Procedury v Pythonu vracejí právě toto „nic“.

lessons/beginners/exceptions/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ A dokonce nám to dá vědět – výjimkou, kterou můžeš *zachytit*.
6565
> s mezerou na začátku, např. s `' 3'`. Funkce `isdecimal` ale takový řetězec
6666
> odmítne.
6767
>
68-
> Chceš-li zjistit jestli funkce `int` umí daný řetězec převést na číslo,
68+
> Chceš-li zjistit, jestli funkce `int` umí daný řetězec převést na číslo,
6969
> nejlepší je použít přímo funkci `int`.
7070
7171

@@ -190,7 +190,7 @@ finally:
190190

191191
Občas se stane, že výjimku budeš potřebovat vyvolat {{gnd('sám', 'sama')}}.
192192

193-
Často se to stává když píšeš nějakou obecnou funkci.
193+
Často se to stává, když píšeš nějakou obecnou funkci.
194194
Třeba funkci na výpočet obsahu čtverce.
195195
Co se stane, když někdo zavolá `obsah_ctverce(-5)`?
196196

lessons/beginners/install/info.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
title: Instalace Pythonu
22
style: md
3-
attribution: Pro PyLadies Brno napsal Petr Viktorin, 2014-2017.
3+
attribution: Pro PyLadies Brno napsal Petr Viktorin, 2014-2017, Martin Pavlásek (2023)
44
license: cc-by-sa-40
55
subpages:
66
linux:

lessons/beginners/install/macos.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Jak na to?
77
Spusť v [příkazové řádce]({{ lesson_url('beginners/cmdline') }}) příkaz:
88

99
```console
10-
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
10+
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
1111
```
1212

1313
Pak zadej následující příkaz a Python bude nainstalovaný:
9.88 KB
Loading

lessons/beginners/install/windows.md

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
11
# Instalace Pythonu pro Windows
22

3-
Běž na [stahovací stránku Pythonu](https://www.python.org/downloads/)
4-
a stáhni si instalátor nejnovější stabilní verze Pythonu.
5-
Ověř si že je to verze **3.6.0 nebo novější**
6-
verze 3.6.0 má jistá vylepšení, která budeme v tomto kurzu používat.
7-
8-
Jak poznat, který instalátor je ten pravý?
9-
Pokud má tvůj počítač 64bitovou verzi Windows,
10-
stáhni si *Windows x86-64 executable installer*.
11-
Pokud máš starší počítač s 32bitovými Windows,
12-
stáhni si *Windows x86 executable installer*.
13-
(Rozdíl je v *x86-64* versus *x86*.)
3+
## Zjisti, jestli už máš Python nainstalovaný
4+
5+
Otevři si příkazovou řádku (pokud nevíš o co jde, přečti si o ní [tady]({{ lesson_url('beginners/cmdline') }})).
6+
7+
Napiš `python` a zmáčkni na klávesnici <kbd>Enter</kbd>.
8+
Teď se může stát několik různých věcí:
9+
1. Otevře se ti Microsoft Store → okno zavři a pokračuj v kroku [Stažení](#download)
10+
2. Zobrazí se ti text podobný tomuto níže?
11+
```plain
12+
> python
13+
Python 3.8.1 (...)
14+
Type "help", "copyright", "credits" or "license" for more information.
15+
>>>
16+
```
17+
To je dobrá zpráva! Ještě si zkontroluj, jakou verzi máš nainstalovanou
18+
(např.`Python 3.11.2` je `3.11`, `Python 3.8.1` je `3.8` atd.).
19+
Třetí číslo za tečkou není tady podstatné.
20+
- Je verze `3.6` nebo novější? Výborně, máš instalaci hotovou!
21+
Okénko s příkazovou řádkou můžeš zavřít.
22+
Až ho budeš znovu potřebovat, můžeš otevřít nové.
23+
Pokračuj dále [Nastavením prostředí]({{ lesson_url('beginners/venv-setup') }}).
24+
V opačném případě přejdi na [Stažení](#download)
25+
26+
27+
{{ anchor('download') }}
28+
## Stažení
29+
- Běž na [stahovací stránku](https://www.python.org/downloads/windows/)
30+
- klikni na *Latest Python 3 Release*
31+
- v části *Files*, ve sloupci *Version*, vyber vhodný *Windows installer* pro tvou verzi Windows (32 nebo 64bit).
1432

1533
> [note]
1634
> Kde zjistíš, zda máš 32bitové nebo 64bitové Windows? Otevři nabídku
@@ -22,13 +40,17 @@ stáhni si *Windows x86 executable installer*.
2240
alt='Screenshot zjišťování verze systému',
2341
) }}
2442

43+
## Instalace
44+
2545
Stažený instalátor spusť.
26-
Na začátku instalace zaškrtni **Install launcher for all users**
27-
a také **Add Python to PATH**.
46+
47+
Na začátku instalace zaškrtni:
48+
- **Use admin privileges when installing py.exe**
49+
- a také **Add python.exe to PATH**.
2850
Tyto volby ti zjednoduší vytvoření virtuálního prostředí.
2951

3052
(Jestli nemáš administrátorské oprávnění, volbu
31-
*Install launcher for all users* nezaškrtávej.)
53+
*Use admin privileges when installing py.exe* nezaškrtávej.)
3254

3355
{{ figure(
3456
img=static('windows_add_python_to_path.png'),

0 commit comments

Comments
 (0)