Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add materials for the Snake workshop #545

Draft
wants to merge 30 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
baa03a6
Add the Snake workshop course
encukou Aug 5, 2018
be37543
Copy python-basics from DjangoGirls
encukou Aug 19, 2018
adee4ee
Some rewriting of python-basics
encukou Aug 19, 2018
95514d0
More intro rewriting, mainly on lists
encukou Aug 19, 2018
506e0ee
Rewrite intro to dicts
encukou Aug 28, 2018
704f0a7
Work on logic & saving
encukou Aug 28, 2018
05f3c26
Work on function definitions
encukou Aug 28, 2018
5ae599c
Rewrite functions & loops
encukou Aug 28, 2018
5bae2fa
Split the fast-track/python-basics into manymany small chapters
encukou Aug 28, 2018
434e995
Add installation instructions and venv setup to snake workshop
encukou Aug 29, 2018
679c736
Snake: Put entire game in one file, move toroid topo into extension
encukou Aug 31, 2018
a6f2cc1
Snake: Add Pyglet fast-track, some more rewriting
encukou Aug 31, 2018
3a2758c
Refine the intro to Python
encukou Aug 31, 2018
131d6a6
Add something about tuples and zip
encukou Aug 31, 2018
968d11f
Add info about the `in` operator
encukou Aug 31, 2018
30c3653
Rename 'tail' and 'head' snake parts to just 'end'
encukou Aug 31, 2018
aad73a5
snake logic: Rename a heading
encukou Aug 31, 2018
29140e5
beginners/cmdline: Add forgotten {{a}}
encukou Oct 4, 2018
d22822e
beginners/venv-setup: Remove coach-present notes
encukou Oct 4, 2018
7626adc
Don't assume specific lesson people learned the command line in
encukou Oct 4, 2018
26c7416
Add fast-track lesson for command line basics
encukou Oct 4, 2018
fc0d9eb
fast-track/script: Change to the lesson directory, not desktop
encukou Oct 4, 2018
67d6469
Hotfix: Update Python download link for Windows
encukou Oct 5, 2018
a03f409
Update index.md
prochac Oct 11, 2018
76d9eb0
Add a lesson on importing and randomness
encukou Oct 12, 2018
93ae6a6
fast-track: Rewordings and minor reorderings/additions
encukou Feb 1, 2019
336ad00
Snake workshop: Add a section on the random module (and importing)
encukou Feb 1, 2019
f82b810
snake/drawing: Use nested loops instead of pathlib.Path
encukou Feb 1, 2019
05e013b
fix typo
mpavlase Feb 1, 2019
9f4298d
Remove duplicate lesson
encukou Jul 1, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions courses/snake/info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
title: Hadí workshop
description: Hravá ochutnávka programování
long_description: |

Chceš se naučit programovat, ale nevíš kde začít?
Máme tu workshop právě pro tebe!

Pod vedením instruktora vytvoříš variantu klasické videohry Had,
kterou můžeš znát třeba ze starších mobilů Nokia.
Na vlastní kůži si vyzkoušíš jak se píše kód,
jaké jsou základní programovací koncepty, a jaké to je,
když počítač přestane trucovat a začne poslouchat tvoje příkazy.

(Přijde-li ti projekt málo praktický, nezoufej! Spíš než o hru jde
o základní programovací principy, které dál využiješ např. při tvorbě
webových aplikací, analýze dat, strojovém učení,
programování robotů nebo návrhu systémových nástrojů.)

Workshop je pro úplné začátečníky.
Není potřeba vědět nic o programování, stačí mít počítač a umět ho používat
(např. otevřít/uložit soubor, nainstalovat program).

Workshop je v češtině a zdarma.

Zalíbí-li se ti tahle ochutnávka, je možnost pokračovat jedním
z podzimních začátečnických kurzů PyLadies, které začnou nedlouho
po workshopu.

---

Materiály níže jsou zatím poznámky pro lektora, často psané pro
pokročilejší studenty; na workshopu budou podány v jednodušší podobě.

vars:
coach-present: true

plan:
- title: Příprava
slug: preparation
materials:
- lesson: fast-track/cmdline
- lesson: beginners/install
- lesson: beginners/venv-setup
- lesson: beginners/install-editor
- title: Workshop
slug: intro
materials:
- title: Úvod
url: null
- lesson: fast-track/repl
- lesson: fast-track/str
- lesson: fast-track/conversion
- lesson: fast-track/variables
- lesson: fast-track/list
- lesson: fast-track/random
- lesson: fast-track/dict
- lesson: fast-track/bool
- lesson: fast-track/script
- lesson: fast-track/if
- lesson: fast-track/def
- lesson: fast-track/for
- lesson: fast-track/tuple
- title: "Doplnění: list slicing, del, n-tice, zip()"
url: null
- title: Had
slug: workshop
materials:
- title: Instalalce Pygletu
url: null
- lesson: fast-track/pyglet
- lesson: snake/drawing
- lesson: snake/logic
- title: Zabalení spustitelného souboru (bonus)
url: null
- title: Rozšíření
slug: extensions
materials:
- lesson: snake/toroid
2 changes: 1 addition & 1 deletion lessons/beginners/cmdline/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ Pokud máš adresář `Desktop` nebo `Plocha`, přejdi tam. Pak nezapomeň ově
Jsi-li na Linuxu nebo macOS, dej si pozor na velikost písmen: na těchto
systémech jsou `Desktop` a `desktop` dvě různá jména.

Jsi-li na Windows, `cd` už jsi používala – tento příkaz se chová různě
Jsi-li na Windows, `cd` už jsi používal{{a}} – tento příkaz se chová různě
podle toho, jestli něco napíšeš za něj nebo ne.

{% call sidebyside() %}
Expand Down
2 changes: 1 addition & 1 deletion lessons/beginners/install/linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Nezalekni se – většinu sekcí pravděpodobně přeskočíš. :)
## Instalace Pythonu 3

Na Linuxu většinou Python 3 už bývá. Abys to zkontroloval{{a}}, spusť
[příkazové řádce]({{ lesson_url('beginners/cmdline') }}) příkaz:
v příkazové řádce příkaz:

```console
$ python3 --version
Expand Down
2 changes: 1 addition & 1 deletion lessons/beginners/install/macos.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Nainstaluj si nástroj [Homebrew](http://brew.sh), který řeší a zjednodušuj
instalaci aplikací a knihoven, které budeme potřebovat pro programování.
Jak na to?

Spusť v [příkazové řádce]({{ lesson_url('beginners/cmdline') }}) příkaz:
Spusť v příkazové řádce příkaz:

```console
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Expand Down
2 changes: 1 addition & 1 deletion lessons/beginners/install/windows.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Instalace Pythonu pro Windows

Běž na [stahovací stránku Pythonu](https://www.python.org/downloads/)
Běž na [stahovací stránku Pythonu](https://www.python.org/downloads/release/python-370/)
a stáhni si instalátor nejnovější stabilní verze Pythonu.
Ověř si že je to verze **3.6.0 nebo novější** –
verze 3.6.0 má jistá vylepšení, která budeme v tomto kurzu používat.
Expand Down
8 changes: 4 additions & 4 deletions lessons/beginners/venv-setup/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,9 @@ C:\Users\Helena\{{rootname}}
05/08/2014 07:28 PM <DIR> 01
{% endcall %}

{% if var('coach-present') -%}
{# XXX: if var('coach-present') -%}
Výsledek pro kontrolu ukaž koučovi.
{%- endif %}
{%- endif #}


## Virtuální prostředí
Expand Down Expand Up @@ -171,9 +171,9 @@ V grafickém prohlížeči souborů to vypadá např. takto:
alt="(adresáře '01' a 'venv' vedle sebe)",
) }}

{% if var('coach-present') -%}
{# XXX: if var('coach-present') -%}
Výsledek pro kontrolu ukaž koučovi.
{%- endif %}
{%- endif #}


### Aktivace virtuálního prostředí
Expand Down
148 changes: 148 additions & 0 deletions lessons/fast-track/bool/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# Porovnávání věcí

Programátoři často porovnávají různé hodnoty. Pojďme se podívat, jak na to.

``` pycon
>>> 5 > 2
True
>>> 5 > 8
False
>>> 5 < 8
True
```

Když se Pythonu zeptáš, jestli je jedno číslo větší než druhé, odpoví ti
`True` (pravda) nebo `False` (nepravda).

Funguje to i se složitějšími výrazy:

``` pycon
>>> 5 > 2 * 2
True
```

„Větší než“ a „menší než“ jsou značky známé z matematiky.
Chceš-li se ale zeptat, jestli jsou dvě čísla stejná, je potřba použít
trochu jiný zápis:

``` pycon
>>> 1 == 1
True
```

Jedno rovnítko `=` používáme pro *přiřazení* hodnoty do proměnné.
Když chceš zkontrolovat, jestli se věci navzájem *rovnají*, vždy, **vždy**
musíš dát dvě rovnítka `==`.

Další možnosti porovnávání jsou nerovnost (≠), větší nebo rovno (≤)
a meší nebo rovno (≥).
Většina lidí tyhle symboly nemá na klávesnici, a tak Python používá `!=`, `<=`
a `>=`.

``` pycon
>>> 5 != 2
True
>>> 3 <= 2
False
>>> 6 >= 12 / 2
True
```

Už jsi někdy slyšel{{a}} výraz „srovnávat jablka a hrušky“? Zkusme v Pythonu ekvivalent:

``` pycon
>>> 1 > 'krajta'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'int' and 'str'
```

Stejně jako nelze srovnávat „jablka a hrušky“,
Python není schopen porovnávat řetězce (`str`) a čísla (`int`).
Místo toho zobrazí `TypeError` a říká nám, že tyto dva typy nelze porovnat.

Co se stane, když v minulé ukázce zaměníš `>` za `==`?

{% filter solution %}
```pycon
>>> 1 == 'krajta'
False
```

Jablka a hrušky nemůžeš porovnávat, ale můžeš si potvrdit že jsou to dvě různé
věci.
{% endfilter %}


## Logika

Chceš zkusit ještě něco? Zadej tohle:

``` pycon
>>> 6 > 2 and 2 < 3
True
>>> 3 > 2 and 2 < 1
False
>>> 3 > 2 or 2 < 1
True
```

V Pythonu můžeš zkombinovat několik porovnání do jednoho!

* Pokud použiješ operátor `and`, obě strany musí být pravdivé, aby byl celý výraz pravdivý.
* Pokud použiješ operátor `or`, stačí aby jen jedna strana z porovnání byla pravdivá.


## Přítomnost

Nebylo by pěkné zjistit, jestli tvoje číslo vyhrálo v loterii?
Máš-li seznam, operátorem `in` se můžeš zeptat, jestli je v něm daný prvek:

``` pycon
>>> loterie = [3, 42, 12, 19, 30, 59]
>>> 18 in loterie
False
>>> 42 in loterie
True
```

Není to úplně porovnání, ale dostaneš stejný druh výsledku jako s `<` či `==`.


## Pravdivostní hodnoty

Právě ses dozvěděl{{a}} o novém typu objektu v Pythonu.
Už známe typy řetězc, číslo, seznam nebo slovník; přidali jsme k nim
*pravdivostní hodnotu*, nebo častěji anglicky *boolean*.

Pravdivostní hodnoty jsou jenom dvě: `True` (pravda) nebo `False` (nepravda).

Aby Python pochopil, že se jedná o tento typ,
je potřeba dávat pozor na velikost písmen.
`true`, `TRUE`, `tRUE` nebude fungovat – jedině `True` je správně.

Jako každou hodnotu, i *boolean* můžeš uložit do proměnné:

``` pycon
>>> a = True
>>> a
True
```

Stejně tak můžeš uložit i výsledek porovnání:

``` pycon
>>> a = 2 > 5
>>> a
False
```


## Shrnutí

V této sekci ses dozvěděl{{a}}:

* V Pythonu můžeš **porovnávat** pomocí operátorů `>`, `>=`, `==` `<=`, `<`, `!=` a `in`
* Operátory `and` a `or` umí **zkombinovat** dvě porovnání.
* **Boolean** (pravdivostní hodnota) je typ, který může mít jednu ze dvou
hodnot: `True` (pravda) nebo `False` (nepravda).
12 changes: 12 additions & 0 deletions lessons/fast-track/bool/info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
title: Porovnávání a logika
style: md
attribution:
- Založeno na materiálech [DjangoGirls](https://djangogirls.org/).
- Část této kapitoly je založena na kurzu [Geek Girls Carrots](https://github.com/ggcarrots/django-carrots).
- |
Původní DjangoGirls tutoriál přeložila do češtiny skupina dobrovolníků.
Poděkování patří hlavně: Davidovi (dakf), Kristýně Kumpánové,
Veronice Gabrielové, Tomáši Ehrlichovi, Aničce Jaegerové,
Matějovi Stuchlíkovi, Filipovi Sivákovi a Juraji M. Bezručkovi.
- Pro PyLadies CZ upravil Petr Viktorin, 2018.
license: cc-by-sa-40
Loading