Skip to content

Commit 78891ea

Browse files
committed
Make deck-building code more straightforward
Optimization is left as an exercise, but also given a bit later.
1 parent 57dd5ec commit 78891ea

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

lessons/beginners/list/index.md

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -405,11 +405,31 @@ zavolej `append` pro všechny kombinace barev a hodnot:
405405
```python
406406
balicek = []
407407
for barva in '', '', '', '':
408-
for hodnota in list(range(2, 11)) + ['J', 'Q', 'K', 'A']:
409-
balicek.append(str(hodnota) + barva)
408+
for hodnota in ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']:
409+
balicek.append(hodnota + barva)
410410
print(balicek)
411411
```
412412

413+
> [note] Jde to líp?
414+
> Psát do programu výčet po sobě jdoucích čísel,
415+
> `'2', '3', '4', '5', '6', '7', '8', '9', '10'`,
416+
> není ideální – na takovou otročinu přece máme počítače!
417+
> Zkus čísla dostat pomocí `range`.
418+
> Ale pozor, není to úplně přímočaré:
419+
>
420+
> * Jaké argumenty dáš funkci `range`, abys dostal{{a}} čísla od 2 do 10?
421+
> * Funkce `range` vrací sekvenci, která ale není seznam.
422+
> Abys ji mohl{{a}} spojit se seznamem `['J', 'Q', 'K', 'A']`, budeš ji muset
423+
> na seznam převést: `list(range(...))`
424+
> * Abys mohl{{a}} čísla z `range` připojit k řetězci jako ``, budeš muset
425+
> každou hodnotu před použitím převést na řetězec: `str(hodnota)`.
426+
>
427+
> Bonus: Jaký je nejkratší zápis, kterým můžeš zadat seznam
428+
> `['J', 'Q', 'K', 'A']`?
429+
>
430+
> Řešení najdeš v textu o kousek níže.
431+
432+
413433
## Seznamy a řetězce
414434

415435
Seznamy a řetězce jsou druhy *sekvencí*.
@@ -458,9 +478,12 @@ Seznam změní „na místě“ a nic nevrací (podobně jako metoda `sort`).
458478
```python
459479
import random
460480

481+
ciselne_hodnoty = list(range(2, 11))
482+
pismenne_hodnoty = list('JQKA')
483+
461484
balicek = []
462485
for barva in '', '', '', '':
463-
for hodnota in list(range(2, 11)) + ['J', 'Q', 'K', 'A']:
486+
for hodnota in ciselne_hodnoty + pismenne_hodnoty:
464487
balicek.append(str(hodnota) + barva)
465488
print(balicek)
466489

0 commit comments

Comments
 (0)