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

Zpětná vazba k projektům lekce Cykly

range

In [24]:
for i in range(0, 5):  # prava mez nikdy neni zahrnuta, posledni hodnota je 4
    print(i)
0
1
2
3
4

Nastavení proměnné na novou hodnotu

In [20]:
opozdene_cislo = 0
nove_cislo = 0
for i in range(5):
    nove_cislo += 1
    print("Nové číslo:", nove_cislo)
    print("Opožděné číslo:", opozdene_cislo)
    print()
    opozdene_cislo = nove_cislo
Nové číslo: 1
Opožděné číslo: 0

Nové číslo: 2
Opožděné číslo: 1

Nové číslo: 3
Opožděné číslo: 2

Nové číslo: 4
Opožděné číslo: 3

Nové číslo: 5
Opožděné číslo: 4

Importy

Není vhodné si až příliš ulehčovat práci. Programátoři jsou sice líní, ale ne až tak moc. :-)

In [ ]:
# kdyby zelva mela funkci "print" (napr. pro vytisteni obrazku na tiskarnu)
from turtle import *

...

print("Mona Lisa je hotova.")
Traceback (most recent call last):
  ...
FileNotFoundError: [Errno 2] No such file or directory: 'Mona Lisa je hotova.'

Přepisování názvů

Raději ne:

In [ ]:
min = 13

Jak mám název své proměnné ověřit?

In [ ]:
>>> min
<built-in function min>

Výpočty hodnot

Raději ne:

In [ ]:
forward(71)  # ve skutecnosti 70.71067811865476...

Správné řešení:

In [ ]:
from math import sqrt
forward(50 * sqrt(2))

Pokud používám vypočtenou hodnotu častěji:

In [ ]:
from math import sqrt
uhlopricka = 50 * sqrt(2)

forward(uhlopricka)
...
forward(uhlopricka)

Spirála

Pěkné, jednoduché řešení:

In [ ]:
from turtle import forward, left, right, exitonclick, penup, pendown  # nepouzite importy
for i in range(720):
    forward(i*2/100)
    left(5)
exitonclick()

Květina

Opakující se kód:

In [ ]:
for x in range(24):
    for i in range(100):
        forward(delka_strany)
        left(1)
    left(80)
    for i in range(100):
        forward(delka_strany)
        left(1)

Možnost zjednodušení kódu:

In [ ]:
for x in range(24):
    for i in range(200):
        forward(delka_strany)
        left(1)
        if i == 99:
            left(80)

Opakující se kód, chybí odsazení komentářů:

In [ ]:
#prvni pulka listu vlevo
        for n in range(1,7):
            left((60/n))
            forward(10+s)
        left(30)
#druha pulka listu vlevo
        for x in range(1,7):
            left((60/x))
            forward(10+s)

Komentáře a styl kódu

  • Dělat. Dělat. Dělat. :-)
  • Správně odsazovat.
  • Funkční části programu nebo logické úseky kódu oddělit jedním prázdným řádkem.
  • Radeji bez diakritiky, pokud jsou v cestine. :-)
  • Komentáře s očekávaným výstupem, např.: "cyklus vypisuje postupne hodnoty 0, 1, 1, 2, 3, 5, 8, 13, 21..."

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