Python - zajęcia 5
Pętle cz.1
Sposoby na zdefiniowanie powtarzalnej czynności np. "Wykonuj coś tak długo jak jakiś warunek jest spełniony","Wykonaj coś X razy". W pythonie mamy dostępne pętle while i for.
Pętla for
"Wykonaj coś tyle razy ile jest elementów w"
- Umożliwia nam przemieszczanie się po elementach jakiejś sekwencji np. znakach w ciągu znaków, czy elementach listy/krotki.
- Inaczej mówiąc: pętla która wykonuje się tyle razy ile mamy elementów w sekwencji (O ile nie wyrwiemy sie z niej wcześniej)
Preferowany rodzaj pętli w pythonie:
for litera in "Robisz.to":
print(litera)
- Podobnie jak w "ifach" - są też wcięcia które oznaczają który blok kodu zostanie wykonany w pętli (coś powtarzamy wiele razy)

Przykłady:
zwierzaki = ["pies", "kot", "chomik", "rybki"]
for zwierzak in zwierzaki:
print(zwierzak)
print("***********")
#Wynik: pies
# ***********
# kot
# ***********
# chomik
# ***********
# rybki
# ***********
Funkcja range
range(ilość elementów)
for i in range(3):
print("witaj")
#Wynik: witaj
witaj
witaj
for costam in range(1,11):
print(costam)
#Wynik:1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
for costam in range(10, 0, -1):
print(costam)
#Wynik:10
# 9
# 8
# 7
# 6
# 5
# 4
# 3
# 2
# 1
for i in range(5):
print(i, end= ", ")
#Wynik: 0, 1, 2, 3, 4,
Pętla for w słownikach:
przepisy = {
"jajecznica" : ["jajka", "masło", "pieprz", "sól"]
"pizza" : ["mąka","drożdże","przyprawy"]
}
for potrawa in przepisy:
print (potrawa)
#Wynik: jajecznica
pizza
przepisy = {
"jajecznica" : ["jajka", "masło", "pieprz", "sól"]
"pizza" : ["mąka","drożdże","przyprawy"]
}
for skladniki in przepisy["jajecznica"]:
print (skladniki)
#Wynik: jajka
masło
pieprz
sól
przepisy = {
"jajecznica" : ["jajka", "masło", "pieprz", "sól"]
"pizza" : ["mąka","drożdże","przyprawy"]
}
for potrawa in przepisy:
print ("Nazwa: ", potrawa)
for skladnik in przepisy[potrawa]:
print(skladnik)
print("***")
#Wynik: Nazwa: Jajecznica
jajka
masło
pieprz
sól
***
Nazwa: Pizza
mąka
drożdże
przyprawy
***
Modłu turtle
Słuzy do proceduralnego (poprzez kod) rysowania kształtów na ekranie.
"Żółwik" jest dość "sędziwy" - wywodzi się z rozwiązań opracowanych dla języka Logo pod koniec lat 60. Wbrew pozorom jest bardzo przydatny - w sposób podobny do "żółwika" działają maszyny sterowane numerycznie (cnc, np. frezarki). Spotyka sie go także w architekturze. W programowaniu pomaga zrozumieć działanie pętli, poprawianie ich i konstruowanie.
Turtle powinien być domyślnie zainstalowany z pythonem.
Obsługa żółwika
import turtle
zolwik = turtle.Turtle() # stworz obiekt rysujacego zolwia pod zmienna zolwik
zolwik.speed(20) # ustaw szybkosc zolwia wbudowana metoda speed
zolwik.shape("turtle") # uzyj metody shape do ustawienia wygladu kursora / zolwia
#zolwik.pensize(3) #zmienia grubość rysowanego obiektu
# tu kod
Kody do sterowania:
.forward(odległość) - przesuwa żółwia do przodu
.left(kąt) - skręca w lewo o podany kąt
.right(kąt) - skręca w prawo o podany kąt
.circle(promień) - rysuje okrąg o podanym promieniu
.penup() - żółwik przemieszczając się, przestanie zostawiać ślad
.pendown() - żółwik przemieszczając się zacznie rysować

Zad1:
for schody in range(4):
print(zolwik.forward(50))
print(zolwik.left(90))
for schody in range(1):
print(zolwik.forward(100))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(100))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(100))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.left(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(150))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(150))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.left(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(200))
print(zolwik.right(90))
for schody in range(1):
print(zolwik.forward(50))
print(zolwik.right(90))

print(zolwik.right(180))
print(zolwik.forward(wysokosc))
kwadraty = 5
dlugosc = 50
for i in range(kwadraty):
for schody in range(4):
print(zolwik.forward(dlugosc))
print(zolwik.left(90))
dlugosc += 50
