Żółwik - przykładowe programy
Moduł turtle jest świetnym narzędziem do ćwiczenia pętli - widzimy na ekranie co żółwik robi, przez co łatwiej nam analizować błędy.
Poniżej kilka przykładowych programów z opisami.
Kwadrat

import turtle
zolwik = turtle.Turtle()
zolwik.speed(1)
zolwik.shape("turtle")
# kwadrat ma 4 boki tej samej dlugosci
# tym samym mozemy przy rysowaniu
# 4 x powtorzyc przemieszcenie sie do przodu
# i skret w lewo / prawo
for _ in range(4):
zolwik.forward(80)
zolwik.right(90)
zolwik.hideturtle()
turtle.exitonclick()
Wielokąty
Zasadę rysowania kwadratu możemy uogólnić tak żebyśmy byli w stanie narysować właściwie dowolny wielokąt foremny (np. hexa).
Wystarczy że wykonamy tyle powtórzeń ile mamy ścianek i skręcimy o odpowiedni kąt (360/ilość ścianek, czyli 60 dla hexa).

import turtle
zolwik = turtle.Turtle()
zolwik.speed(1)
zolwik.shape("turtle")
ilosc_scianek = 6
skret = 360 / ilosc_scianek
for _ in range(ilosc_scianek):
zolwik.forward(80)
zolwik.right(skret)
zolwik.hideturtle()
turtle.exitonclick()
Rozeta
Rysując prostą rozetę wystarczy, że powtórzymy rysowanie okręgu odpowiednią ilość razy, po czym obrócimy żółwika o odpowiedni kąt.

import turtle
zolwik = turtle.Turtle()
zolwik.speed(6)
zolwik.shape("turtle")
for _ in range(6):
zolwik.circle(80)
zolwik.left(60)
turtle.exitonclick()
Krzyżyk

Tu ponownie musimy coś powtórzyć 4 razy - każde ramię krzyżyka wymaga takich samych operacji.
Ale zwóćcie uwagę, że w każdym z nich też są powtórzone operacje - rysujemy niepełny kwadrat. Stąd też w z 4 pętli od ramion będziemy uruchamiali drugą, wewnętrzną pętlę.
import turtle
zolwik = turtle.Turtle()
zolwik.speed(1)
zolwik.shape("turtle")
for x in range(4):
for y in range(2):
zolwik.forward(80)
zolwik.right(90)
zolwik.forward(80)
zolwik.left(90)
turtle.exitonclick()
Słupki
Z podobną sytuacją zetkniemy się rysując słupki.

import turtle
zolwik = turtle.Turtle()
zolwik.speed(1)
zolwik.shape("turtle")
ilosc_slupkow = 4
for i in range(ilosc_slupkow):
for _ in range(2):
zolwik.forward(80)
zolwik.left(90)
zolwik.forward(80 * (i + 1))
zolwik.left(90)
zolwik.penup()
zolwik.forward(80)
zolwik.pendown()
turtle.exitonclick()
W powyższym przykładzie .penup()
i .pendown()
to kosmetyka - nie chcę żeby żółwik rysował kilka razy po podstawie.
Kwadraty w kwadratach

Ponownie mamy tutaj sytuację gdy wykonujuemy pętlę w pętli. Pierwsza odpowiada za powtórzenie rysowania kwadratu 8 razy.
Druga za samo rysowanie kwadratu (bo już wiemy, że boki kwadratu możemy narysować z pomocą pętli).
Dzieje się tu jeszcze jedna ciekawa rzecz - po każdym wykonaniu pętli wewnętrznej (tej od rysowania kwadratu) zwiększamy zmienną rozmiar
- przez co kolejne kwadraty są większe.
import turtle
zolwik = turtle.Turtle()
zolwik.speed(8)
zolwik.shape("turtle")
rozmiar = 80
for x in range(8):
for y in range(4):
zolwik.forward(rozmiar)
zolwik.left(90)
rozmiar += 20
turtle.exitonclick()