Nasz pierwszy program z żółwiem¶
Napiszmy kilka linijek kodu Pythona w celu utworzenia nowego żółwia (ang. turtle) i narysowania łatwej figury geometrycznej jak prostokąt. Będziemy odwoływać się do naszego pierwszego żółwia poprzez zmienną o nazwie alex, ale pamiętaj, że można zastosować dowolną inną nazwę pod warunkiem trzymania się reguł nazywania z poprzedniego rozdziału.
Program, który widzimy, rysuje tylko 2 boki prostokąta. Po dojciu do czwartej linijki kodu mamy linię prostą biegnącą ze środka rysunku w prawo. Po wykonaniu szóstej linijki kodu będziemy widzieli żółwia i narysowaną połowę prostokąta. Naciśnij przycisk „RUN”, aby wypróbować program.
Poniżej omówimy kilka rzeczy niezbędnych do zrozumienia programu.
Pierwsza linijka powoduje załadowanie przez Python modułu o nazwie turtle. Moduł ten pozwala użyć dwóch nowych typów : Turtle i Screen. Zapis kropkowy turtle.Turtle znaczy „typ Turtle zdefinowany w module turtle”. (Pamiętaj, że w Pythonie rozróżnia się w nazwach małe i duże litery, wobec czego nazwa modułu turtle, rozpoczynająca się małą literą i nazwa typu Turtle, rozpoczynająca się dużą literą to dla Pythona nazwy dwóch różnych obiektów).
Tak więc tworzymy i otwieramy coś, co w module turtle nazywa się ekranem (wolimy, aby nazywać to oknem lub w przypadku tej internetowej wersji Pythona po prostu kartką), i przypisujemy do zmiennej wn. Każde okno zawiera kartkę (canvas), która stanowi obszar wewnątrz okna, na którym można rysować.
W trzeciej linijce programu tworzymy żółwia. Zmienna alex pozwala się odwoływać do utworzonego żółwia. Trzy pierwsze linijki stanowią przygotowanie pozwalające rysować.
W linijkach 4-6 przemieszczamy i obracamy obiekt alex. Dokonujemy tego poprzez odwołanie się do metod, czy też aktywację metod - czyli instrukcji zrozumiałych dla wszystkich żółwi.
Dokończ rysowanie prostokąta …
Zmodyfikuj program, dodając odpowiednie komendy, tak, aby alex dokończył rysowanie prostokąta.
Sprawdź swoją wiedzę
Programy z pomieszanymi linijkami
Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.
Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.
Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.
Obiekt w Pythonie może mieć różne metody — czyli rzeczy, które umie zrobić — i dodatkowo może mieć również atrybuty — (czasami nazywane właściwościami). Na przykład każdy żółw posiada atrybut color (kolor). Wywołanie metody alex.color(„red”) sprawi, że żółw o nazwie alex stanie się czerwony (red) oraz linie rysowane przez niego również będą czerwone.
Kolor żółwia, szerokość rysowanej linii (szerokość ogona), położenie żółwia na ekranie, kierunek, w którym jest ustawiony i inne są elementami jego aktualnego stanu (state). Podobnie, obiekt window (okno) ma kolor tła, który jest częścią jego stanu.
Obiekty turtle i window można modyfikować za pomocą wielu dostępnych metod. W przykładzie poniżej omówimy tylko niektóre z nich i to takie, któe nie wystąpiły w poprzednim przykładzie. Zauważ również, że zdecydowaliśmy wypróbować te metody na obiekcie żółwia o nazwie tess.
Ostatnia linia jest bardzo ważna. Zmienna wn określa okno pokazane powyżej. Kiedy wywołujemy dla tego okna metodę exitonclick, wykonanie programu zostaje zatrzymane do chwili kliknięcia myszą przez użytkownika gdzieś w obszarze okna. Kiedy nastąpi kliknięcie, następuje zamknięcie okna żółwia i wyjście (zakończenie wykonywania) programu w języku Python.
Za każdym razem, kiedy uruchamiamy ten program, pojawia się nowe okno rysowania i jest widoczne na ekranie do momentu kliknięcia w nie myszą.
Rozbuduj ten program …
- Zmodyfikuj ten program tak, aby przed utworzeniem okna poprosił użytkownika o podanie koloru jego tła. Wybór użytkownika powinien być zapisany w odpowiedniej zmiennej i następnie kolor tła okna powinien być ustawiony zgodnie z wartością tej zmiennej i wyborem użytkownika. (Wskazówka: listę dostępnych nazw kolorów można znaleźć na stronie http://www.w3schools.com/html/html_colornames.asp. Oprócz tradycyjnych lista zawiera niezwykłe kolory np. „PeachPuff” (brzoskwinowo-ptysiowy) lub „HotPink” (gorący róż).)
- W podobny sposób wprowadź zmiany, pozwalające użytownikowi, podczas działania programu, ustawić kolor tess.
- Wprowadź zmiany, aby możliwa była modyfikacja szerokości linii rysowanej przez żółwia. Wskazówka: dialog z użytkownikiem prowadzi do uzyskania łańcucha tekstowego określającego szerokość linii, ale metoda tess umożliwiająca zmianę szerokości rysowanej linii, czyli pensize wymaga jako argumentu liczby całkowiej (int). Oznacza to konieczność konwersji łańcucha tekstowego podanego przez użytkownika na liczbę całkowitą (int), zanim zostanie przekazana do atrybutu pensize.
Sprawdź swoją wiedzę
turtle-2-5: Consider the following code:
import turtle
wn = turtle.Screen()
alex = turtle.Turtle()
alex.forward(150)
alex.left(90)
alex.forward(75)
What does the line „import turtle” do?
turtle-2-8: Which of the following code would produce the following image?
Programy z pomieszanymi linijkami
Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.
Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.