Lekcja 5 - Nikola Horn
Żółwik - rysowanie wielokątów z różną ilością ścian i wyborem koloru
import turtle
zolwik = turtle.Turtle()
zolwik.speed(6)
zolwik.shape("turtle")
zolwik.width(5)
sciany = int(input("Wpisz ilość ścian wielokątu: "))
kolor = input("Wybierz kolor: red, green, blue: ")
for _ in range(sciany):
zolwik.pencolor(kolor)
zolwik.forward(80)
zolwik.right(360/sciany)
turtle.exitonclick()
Żółwik - rysowanie x ilości kółek tworzących "rozetę"
import turtle
zolwik = turtle.Turtle()
zolwik.speed(6)
zolwik.shape("turtle")
ilosc = int(input("Wpisz ile chcesz narysować kółek: "))
for _ in range(ilosc):
zolwik.circle(80)
zolwik.right(360/ilosc)
turtle.exitonclick()
Żółwik - rysowanie x ilości coraz większych kwadratów
import turtle
zolwik = turtle.Turtle()
zolwik.speed(6)
zolwik.shape("turtle")
wartosc=80
ilosc = int(input("Ile chcesz kwadratów? "))
for _ in range(ilosc):
for _ in range(4):
zolwik.forward(wartosc)
zolwik.left(90)
wartosc += 20
turtle.exitonclick()
Żółwik - rysowanie x ilości "schodów"/"bar chart"
import turtle
zolwik = turtle.Turtle()
zolwik.speed(6)
zolwik.shape("turtle")
wartosc=20
ilosc = int(input("Ile chcesz schodów "))
for _ in range(ilosc):
for _ in range(2):
zolwik.forward(wartosc)
zolwik.left(90)
zolwik.forward(wartosc+wartosc)
zolwik.left(90)
zolwik.penup()
zolwik.forward(wartosc)
zolwik.pendown()
wartosc += 10
turtle.exitonclick()
Notatki z zajęć
Zagnieżdżanie list/krotek
ankieta = [
(
"Ile mam lat?",
[
("10", 0),
("11", 0),
("30", 1),
],
),
(
"Ile nóg ma pies?",
[
("2", 0),
("4", 1),
("30", 0),
],
),
]
Widać tu listę krotek, a w każdej krotce listę kolejnych krotek. Lista [], krotka ()
Podawanie indeksów elementów z krotki znajdującej się w liście:
moja_lista = [("a", 1), ("b", 2), ("c", 3)]
print(moja_lista[1][0])
[1] - indeks listy; [0] - indeks krotki, która jest w liście
print wyświetli pierwszy element z drugiej krotki, czyli "b"
Biblioteki modułów
Importowanie modułów, które znajdują się już na naszym komputerze:
import random
moja_lista = ["a", "b", "c"]
losowy_wybor = random.choice(moja_lista)
print(losowy_wybor)
import nazwa_modułu
nazwa_modułu.nazwa_funkcji(parametr)
Zmiana nazwy modułu/nadawanie aliasu:
import random as rnd
Instalacja biblioteki, której nie mamy na komputerze:
pip install nazwa_modulu
Importowanie bibliotek rozwiązujących trywialne problemy (takie, które można rozwiązać w kilku linijkach) to zła praktyka!
Pętla for
DRY - Don't Repeat Yourself
Pętla for - "wykonaj coś tyle razy ile jest elementów w danym obiekcie"
for element in sekwencja:
for litera in "Robisz.to":
print(litera)
litera - to słowo wymyślamy sami! Jeśli nie jest używane w bloku pętli, dobrą praktyką jest użycie podłogi _
Pętla ta będzie wykonywała funkcję print tyle razy ile jest elementów w stringu/liście. W tym wypadku wydrukuje po kolei wszystkie elementy stringu.
for _ in "Robisz.to"
print("Hello")
Tutaj wydrukuje "Hello" tyle razy ile jest elementów w stringu.
for i in moja_lista:
print(i, end=", ")
To wydrukuje wszystkie elementy "mojej listy" z dodanym ", " na końcu każdego z nich (dzięki czemu będą w jednej linii!
Ciekawostka: print() bez żadnego parametru drukuje sam enter
moja_lista = [2 , 3 , 4]
a = 1
for i in moja_lista:
a *= i
print(a)
Ważne są wcięcia! Ten kod wydrukuje "24" ponieważ wykona wszystkie działania w pętli i wydrukuje ich wynik na końcu. Jeśli print byłby w pętli to drukowałby wyniki każdego działania osobno.
a *= 1 = a = a*i
Możemy też używać pętli for ze słownikami, ale wtedy iterujemy tylko po kluczach!! (Używając print, wyświetlimy same klucze). Możemy obejść to wykorzystując metodę .items() dla słownika:
moj_slownik = {"a" : 1, "b", 2}
for klucz, wartosc in moj_slownik.items():
print(f"Klucz: {klucz}, Wartość: {wartosc}")
Funkcja range()
range() - generuje nam sekwencję o wybranej przez nas długości
for element in range(10):
print element
Moduł turtle
Służy do proceduralnego rysowania kształtów na ekranie.
import turtle
zolwik = turtle.Turtle()
#prędkość żółwia:
zolwik.speed(6)
#kształt "mazaka" - tutaj żółwik
zolwik.shape("turtle")
#szerokość linii:
zolwik.width(5)
#wychodzenie z ekranu rysowania kliknięciem myszy:
turtle.exitonclick()
W sposób podobny do turtle działają frezarki, CNC itp.