Feedback k domácím projektům

Výpočet minima

Funkce min

In [1]:
min(range(10))
Out[1]:
0
In [2]:
min(5,7,3,2,1,9)
Out[2]:
1
In [3]:
min([10,11,-3,5,7,9])
Out[3]:
-3
In [4]:
min(5)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-26416dce7e47> in <module>()
----> 1 min(5)

TypeError: 'int' object is not iterable

Hledání minima v cyklu

In [5]:
# Třikrát se zeptej uživatele na číslo
for x in range(3):
    cislo = int(input("Zadej cislo: "))
    
# Výpočet a výpis minima
minimum = min(cislo)
print("Minimum je", minimum)
Zadej cislo: 
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-59beb391f55e> in <module>()
      1 # Třikrát se zeptej uživatele na číslo
      2 for x in range(3):
----> 3     cislo = int(input("Zadej cislo: "))
      4 
      5 # Výpočet a výpis minima

ValueError: invalid literal for int() with base 10: ''
In [15]:
# Pomocná proměnná
minimum = 100000000000000000
# Třikrát se zeptej uživatele na číslo
for x in range(3):
    cislo = int(input("Zadej cislo: "))
    if cislo < minimum:
        minimum = cislo
    
print("Minimum je", minimum)
Zadej cislo: 10
Zadej cislo: 15
Zadej cislo: -10
Minimum je -10

n-úhelníky

In [16]:
from turtle import left, right, exitonclick, forward, penup, pendown, speed, bgcolor, colormode

Dlouhá verze

In [18]:
for petiuhelnik in range(5):
	forward(200/5)
	left(180-(180*(1-2/5)))
penup()
forward(70)
pendown()

for sestiuhelnik in range(6):
	forward(200/6)
	left(180-(180*(1-2/6)))

penup()
forward(70)
pendown()

for sedmiuhelnik in range(7):
	forward(200/7)
	left(180-(180*(1-2/7)))

penup()
forward(70)
pendown()

for osmiuhelnik in range(8):
	forward(200/8)
	left(180-(180*(1-2/8)))

penup()
forward(70)
pendown()


exitonclick()

Kratší verze

In [11]:
for n in range(5, 9):

    for strana in range(n):
        forward(200/n)
        left(180-(180*(1-2/n)))
    penup()
    forward(90)
    pendown()

exitonclick()

Lístečky u kytky

Kručnice pro ilustraci

In [20]:
pocet_stran = 100 
uhel = 360/pocet_stran
delka_strany = 10

# Rekneme zelve, at se nelouda
speed(50)

# Nakresli pro ilustraci kruznici
for x in range(pocet_stran):
    forward(delka_strany)
    left(uhel)

exitonclick()

Co když vezmene jen dvě části kružnice?

In [22]:
# Kdyz nakreslime jen ctvrtinu kruznice, budeme mit polovinu listu ;)
for x in range(pocet_stran//4):
    forward(delka_strany)
    left(uhel)

# Otocime se o 90 stupnu a udelame to same, cimz nakreslime druhou polovinu listu
left(90)
for x in range(pocet_stran//4):
    forward(delka_strany)
    left(uhel)

exitonclick()

A co tak udělat lístek placatější?

In [24]:
pocet_stran = 200
uhel = 360/pocet_stran
pouzijeme = 8

# První polovina listu (osmina kružnice)
for x in range(pocet_stran//pouzijeme):
    forward(delka_strany)
    left(uhel)

# Otočení musíme vypočítat
left(180 - (uhel * pocet_stran/pouzijeme))

# A nakreslime druhou polovinu listu
for x in range(pocet_stran//pouzijeme):
    forward(delka_strany)
    left(uhel)

exitonclick()

Barvy a barevný systém RGB

Jak se míchají barvy?

Základní systém míchání barev vychází ze tří základních barev:

  • R - Red - Červená
  • G - Green - Zelená
  • B - Blue - Modrá

Jejich smícháním v určitém poměru můžeme získat jakoukoli barvu

In [34]:
colormode(255)

r = 255
g = 0
b = 255

bgcolor(r, g, b)
forward(10)
exitonclick()

Co je tady navíc?

In [1]:
promenna1 = int(25)
promenna2 = str("25")
promenna3 = int(2.5)
promenna4 = float(2.5)

print(promenna1, promenna2, promenna3, promenna4)
25 25 2 2.5

Řešení

In [2]:
promenna1 = 25
promenna2 = "25"
promenna3 = int(2.5)
promenna4 = 2.5

print(promenna1, promenna2, promenna3, promenna4)
25 25 2 2.5

Obecné

  • Nepoužívejte poznámkový blok
  • Piště více komentářů
  • Odsazujte zásadně mezerami
  • Odevzdávejte úkoly po jednom (v samostatných souborech)