Desátá lekce přináší želví grafiku -- nástroj pro trénování cyklů a funkcí v Pythonu.

Studijní materiály

Odkaz pro zobrazení Google Slides.

Kontrolní otázky

Vysvětli, proč je přínosné v rámci algoritmizace probírat želví grafiku.
Shrň silné a slabé stránky želví grafiky.

Programy

Mnohoúhelník

"""
mnohouhelnik.py
Vytvoř funkci, která bude vykreslovat mnohoúhelník. Uživatel na začátku zadá číslo > 2, program pak vykreslí patřičný mnohoúhelník (rovnostranný trojúhelník, čtverec, pětiúhelník atd.).
"""
import turtle

def mnohouhelnik(x):
turtle.shape("turtle")
turtle.pencolor("red")
for i in range(x):
turtle.forward(100)
turtle.left(360 / x)
turtle.done()

x = int(input("Zadej, kolikatiúhelník chceš vykreslit: "))

if x > 2:
mnohouhelnik(x)
else:
print("Zadej číslo větší než 2.")

Spirála

"""
spirala.py
Vytvoř program, který jedním tahem vykreslí spirálu n-úhelníku. N-úhelník musí být číslo > 2.
"""
from turtle import *

import random

def spirala(x):
barvy = ["#F00", "green", "blue", "cyan", "magenta"]
shape("turtle")
pocetCar = x * 5
posun = 20 / x

for i in range(pocetCar):
pencolor(random.choice(barvy))
forward(i * posun)
left(360 / x)
done()
x = int(input("Zadej kolikatiúhelník chceš vykreslit: "))

spirala(x)

Hvězda

"""
hvezda.py
Vytvoř funkci, která dle zadaného čísla vykreslí obrys hvězdy. Vstupem bude celé číslo > 2. Vytvoř funkci, která dle zadaného čísla vykreslí jednou čarou hvězdu. Vstupem bude celé číslo > 2.
"""
from turtle import *

def hvezdaLicha(x):
for i in range(x):
forward(100)
left(180 - (180 / x))
exitonclick()

def hvezdaSuda(x):
for i in range(x):
forward(100)
left(360 - (360 / x))
forward(100)
left(180 - (360 / x))

x = int(input("Zadej, kolik cípů chceš vykreslit: "))

if x % 2 == 0:
hvezdaSuda(x)
else:
hvezdaLicha(x)

Spirála hvězda

"""
spiralaHvezda.py
Vytvoř program, který jedním tahem vykreslí spirálu hvězdy. Hvězda musí mít lichý počet cípů (aby šla vykreslit jedním tahem).
"""
from turtle import *

def hvezda(x):
pocetCar = x * 5
for i in range(pocetCar):
forward(i * 10)
left(180 - (180 / x))
exitonclick()

x = int(input("Zadej, kolik cípů chceš vykreslit: "))

if x > 2 and x % 2 == 1:
hvezda(x)
else:
print("Nebylo zadáno liché číslo > 2.")

Větrník

"""
vetrnik.py
Vytvoř funkci, která dle zadaného čísla vykreslí větrník. Vstupem bude celé číslo „x“ značící počet lopatek.
"""
from turtle import *
import math

def lopatka():
forward(100)
left(180 - 45)
forward(math.sqrt(50 ** 2 + 50 ** 2))
left(90)
forward(math.sqrt(50 ** 2 + 50 ** 2))
left(180 - 45)

def vetrnik(x):
for i in range(x):
lopatka()
left(360 / x)
exitonclick()

x = int(input("Zadej, kolik lopatek chceš vykreslit: "))

vetrnik(x)

Kytičky

"""
kyticky.py
Program vykreslí louku plnou kytiček. Uživatel na začátku zadá, kolik okvětních plátků má každá kytička mít, a počet kytiček na louce. Barvy kytiček budou náhodně generovány.
"""
from turtle import *

import random

def kyticky(x, y):
barvy = [
"pink",
"red",
"blue",
"cyan",
"magenta",
"green"
]

for i in range(y):
pencolor(random.choice(barvy))
pendown()
for j in range(x):
circle(10)
left(360 / x)
penup()
setx(random.randint(10, 200))
sety(random.randint(10, 200))
exitonclick()

x = int(input("Zadej počet okvětních plátků: "))
y = int(input("Zadej počet květinek: "))

if x > 0 and y > 0:
kyticky(x, y)
else:
print("Nebyla zadána kladná čísla.")

Zaujal Tě tento online kurz?

Přihlásit k newsletteru

Projekt online vzdělávání byl realizován v rámci Stipendia Czechitas v projektu: „Ženy do IT“ (reg.č. CZ.03.1.51/0.0/0.0/16_061/0003268), který je financován z prostředků Evropského sociálního fondu prostřednictvím Operačního programu Zaměstnanost.