Nauč se Python > Kurzy > Začátečnický kurz PyLadies > První program > Zpětná vazba k domácím projektům

Zpětná vazba k projektům lekce První program

1. Napíšeš v příkazu print(1, 2, 3) čárku navíc?

Záleží na tom, kam tu čárku napíšeme.

  • Pokud za celočíslený argument 3, nic se neděje.
  • Pokud na konec, Python vytvoří n-tici z výsledku volání funkce print (None).
  • Pokud jinam, jde o SyntaxError
In [4]:
print(1, 2, 3,)
1 2 3
In [5]:
print(1, 2, 3),
1 2 3
Out[5]:
(None,)
In [3]:
print(1,, 2, 3)
  File "<ipython-input-3-940877b23067>", line 1
    print(1,, 2, 3)
            ^
SyntaxError: invalid syntax

5. Ne všechno se dá použít jako jméno proměnné. Fungují pro proměnné následující jména? Pokud ne, proč asi?

x          krůta            kratsiStrana    True
tlacitko4  $i               POCET_BODU      _cache
34         druha-odmocnina  _ (podtržítko)  __name__
3e4        readme.txt       π (pí)          while

8. Ulož si následující program jako pokus.py a spusť ho několikrát za sebou. Co dělá?

In [6]:
from random import randrange  # z knihovny random (soucast The Python Standard Library) si vtahnu do sveho programu funkci randrange
cislo = randrange(3)
print(cislo)
2
In [7]:
from random import randrange
cislo = randrange(3)
print(cislo)
0
In [11]:
from random import randrange
cislo = randrange(3)
print(cislo)
0

9. Zkombinuj program z předchozího projektu s programem kámen-nůžky-papír a nastav tah_pocitace na:

  • 'kámen', pokud je cislo 0,
  • 'nůžky', pokud je cislo 1,
  • jinak na 'papír'.
In [18]:
from random import randrange
cislo = randrange(3)
tah_pocitace = cislo

if cislo == 0:
    tah_pocitace = "kámen"
elif cislo == 1:
    tah_pocitace = "nůžky"
else:
    tah_pocitace = "papír"
    
print(tah_pocitace)
papír
In [35]:
from random import randrange
cislo = randrange(3)
tah_pocitace = cislo

# prednastavim hodnotu na "papír"
tah_pocitace = "papír"
if cislo == 0:
    tah_pocitace = "kámen"
elif cislo == 1:
    tah_pocitace = "nůžky"
    
print(tah_pocitace)
nůžky

11. Zkusila jsi porovnávat řetězce? Doplň tuhle tabulku tužkou; pak ověř odpovědi pomocí Pythonu:

a b
2 > 1
1 < 2
'abc' == 'abc'
'aaa' < 'abc'
'abc' > 'Abc'
'abC' < 'abc'
'abc' < 'abcde'
'abc' < 'ábč'
In [38]:
'abc' != 10
Out[38]:
True
In [39]:
'abc' > 10
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-39-82fc87635b62> in <module>
----> 1 'abc' > 10

TypeError: '>' not supported between instances of 'str' and 'int'
In [40]:
'abc' > '10'
Out[40]:
True

12. Jaká je hodnota proměnné po provedení příkazů:

In [41]:
'abc' < 'ABC' < 'def' < 'zajíc'
Out[41]:
False
In [42]:
'ABC' < 'abc' < 'def' < 'zajíc'
Out[42]:
True

13. Na srazu jsme měli program, který píše různé nesmysly podle uživatelem zadaného věku.

Zkus napsat program, který píše hlášky podle zadané rychlosti chůze, váhy ulovené ryby, počtu tykadel, teploty vody nebo třeba vzdálenosti od rovníku.

In [ ]:
velikost_ryby = int(input("Jak velkou jsi chytil rybu (v cm)? "))
opravdova_ryba = velikost_ryby > 0

if opravdova_ryba:
    if velikost_ryby < 20:
        print("Takže neonka z akvaria")
    elif velikost_ryby < 40:
        print("Zřejmě jsi chytil kapra")
    elif velikost_ryby < 100:
        print("To musela být alespoň štika")
    elif velikost_ryby < 200:
        print("Nejmenuješ se Jakub Vágner?")
    else:
        print("Ty jsi teda pěknej kecal")
else:
    print("Ryba musí mít kladnou velikost")
In [ ]:
velikost_ryby = int(input("Jak velkou jsi chytil rybu (v cm)? "))  # TODO: Co kdyz nekdo napise "padesat"?

if not velikost_ryby > 0:
    print("Velikost ryby v cm musí být kladné číslo!")
    # FIXME
    # XXX: Az budeme vedet, jak ukoncit program, tak ho tady ukoncime. :-)
    # TODO
    
if velikost_ryby >= 200:
    print("Ty jsi teda pěknej kecal")
elif velikost_ryby >= 100:
    print("Nejmenuješ se Jakub Vágner?")
elif velikost_ryby >= 40:
    print("To musela být alespoň štika")
elif velikost_ryby >= 20:
    print("Zřejmě jsi chytil kapra")    
else:
    print("Takže neonka z akvaria")

14. Napiš program, který po zadání správného hesla vypíše nějakou tajnou informaci.

  • J.A.Komenský narozen 1592
  • Ve čtvrtek budeme chytřejší!!!
  • Včera jsem snědla celou čokoládu!
  • Kabely jsou za vraty v úlu.
  • Výborně! Nezapomeň si vzít ručník a vyčkej na příjezd Vogonů
  • Gratuluji, zde je Tvé tajemství. Tepelná vodivost vodíku je 0,1815 W⋅m−1⋅K−1.
  • Vaše heslo je nejbezpečnější na světě.
  • Snědla jsem ti čokoládu!
  • Rok 2020 je rokem přestupným a 29. února bude v sobotu
  • V Olomouci právě běží programátorský kurz pro ženy bez potřeby žádných předchozích programátorských znalostí a já jsem toho součástí. Nepřidáš se? Je to super! ☺

17. Zkus přepsat Kámen, Nůžky, Papír pomocí and a or.

Dokážeš docílit toho, aby se každý z řetězců 'Plichta.', 'Počítač vyhrál.' a 'Vyhrála jsi!' objevil v programu jen jednou, aniž bys tyhle řetězce musela přiřazovat do proměnných?

In [ ]:
from random import randrange
tah_pocitace = randrange(3)
tah_cloveka = str(input('Vyber si kámen, nůžky nebo papír: '))
if tah_pocitace == 0:
    print("Počítač vybral kámen.")
if tah_pocitace == 1:
    print("Počítač vybral nůžky.")
else:
    print("Počítač vybral papír.")
if tah_pocitace == 0 and tah_cloveka == 'kámen' or tah_pocitace == 1 and tah_cloveka == 'nůžky' or tah_pocitace == 2 and tah_cloveka == 'papír':
  print('Plichta!')
elif tah_pocitace == 0 and tah_cloveka == 'nůžky' or tah_pocitace == 1 and tah_cloveka == 'papír' or tah_pocitace == 2 and tah_cloveka == 'kámen':
  print('Počítač vyhrál.')
else:
  print('Vyhrála jsi!')
In [ ]:
from random import randrange
tah_pc = randrange(3)
tah_cloveka = input("Vyber si kámen, nůžky nebo papír: ")

# Tah počítače
if tah_pc == 0:
    tah_pc = "kámen"
    print("PC hraje kámen")
elif tah_pc == 1:
    tah_pc = "nůžky"
    print("PC hraje nůžky")
else:
    tah_pc = "papír"
    print("PC hraje papír")

# Vyhodnocení hry
if tah_cloveka == tah_pc:
    print("Plichta")
elif ((tah_cloveka == "kámen") and (tah_pc == "nůžky")) or ((tah_cloveka == "nůžky") and (tah_pc == "papír")) or ((tah_cloveka == "papír") and (tah_pc == "kámen")):
    print("Vyhrál jsi!")
else:
    print("Prohrál jsi")

Toto je stránka lekce z kurzu, který probíhá nebo proběhl naživo s instruktorem.