Programmera Turtle i Python (pdf 142 kB)

Programmera Turtle i Python
För denna uppgift krävs inga eller nästan inga förkunskaper.
I Python finns det en modul som kallas för turtle som kan rita saker. I de här uppgifterna
kommer du få använda modulen för att lära dig om loopar och funktioner genom att rita enkla
geometriska objekt.
Mina första rader kod
Turtle är en liten sköldpadda som ritar ett streck bakom sig när den går. Sköldpaddan
följer dina instruktioner, några av instruktionerna du kan ge sköldpaddan är:
• forward(n) gör så att sköldpaddan går framåt n steg. Exempelvis forward(100) gör
så att sköldpaddan går 100 steg framåt.
• backward(n) gör så att sköldpaddan går n steg bakåt.
• left(n) gör så att sköldpaddan vrider sig n grader åt vänster. Exempelvis så vrider
left(90) sköldpaddan 90 grader åt vänster.
• right(n) gör samma sak som left(n) fast åt höger.
Öppna nu upp filen ”fun_with_turtle.py”. Den innehåller tre delar kod.
Den första delen står mellan två rader som det står #Code you don't have to care
about på. Denna del behöver du inte bry dig om, den är viktigt för att programmet ska
fungera rätt och för att göra det lite lättare för dig att skriva kod.
Den andra delen är några rader kod som ritar en liksidig triangel. Känner du igen
kommandona?
Sist kommer en rad som du inte heller behöver tänka så mycket på, den ser bara till så att
fönstret går att stänga.
Uppgift 1: Rita en kvadrat
Ta bort delen som ritar trianglar, för nu ska du rita en kvadrat! Rita en kvadrat med sidan
100 steg.
Loopar
Du har antagligen skrivit samma två rader fyra gånger för att lyckas göra en kvadrat. Det
känns kanske lite onödigt. Därför finns det i Python något som kallas för loopar.
En loop ser ut så här:
for i in range (n):
#gör A
#gör B
#gör C
#gör D
Skapat av: Alexander Viklund, CDATE, KTH. 31 mars 2015
Uppdaterat: Carina Edlund, CSC, KTH. 29 september 2015
I denna loop kommer A, B och C göras n gånger, D kommer dock bara att göras en gång,
då D ligger utanför loopen. Om något ligger i eller utanför en loop ser man på
indenteringen (avståndet från kanten till där texten börjar).
Loopar är helt enkelt ett väldigt bra sätt för att inte behöva upprepa sig och på så sätt
skriva mindre kod.
Uppgift 2: Rita en kvadrat, igen!
Skriv om koden för Uppgift 1, men använd en loop för att få den kortare.
Uppgift 3: Rita en cirkel
Nu blir det en lite svårare uppgift. Kan du använda en loop för att rita en cirkel? Försök
först själv, sen finns det två tips i slutet av pappret.
Funktioner
För att göra koden lättare att läsa och hantera finns det i Python något som kallas för
funktioner. Det är ett sätt att ge en specifik bit kod ett namn. Varje gång det namnet
skrivs senare i koden så utförs funktionen.
Man deklarerar en funktion, foo såhär:
def foo () :
#gör A
#gör B
Varje gång vi därefter skriver funktionens namn, foo(), i koden så kommer A och B att
göras.
Uppgift 4: Rita en kvadrat igen, igen
Använd dig av det du precis har lärt dig för att skriva en funktion som ritar en kvadrat.
Funktionen borde heta ritaKvadrat().
Uppgift 5: Rita flera kvadrater
Kan du nu kombinera en loop och funktionen du precis skrev för att rita flera kvadrater
bredvid varandra?
Skapat av: Alexander Viklund, CDATE, KTH. 31 mars 2015
Uppdaterat: Carina Edlund, CSC, KTH. 29 september 2015
Funktionsparametrar
En funktion kan ta in något som kallas för en parameter. Det är helt enkelt ett värde som
sen kan användas i funktionen. Exempelvis så kommer följande kod:
def foo (n):
for i in range(n):
#do A
göra A n gånger när vi anropar foo(n). Så foo(3) gör A 3 gånger. n är helt enkelt en
variabel som kan användas i funktionen och som har värdet som vi ger funktionen när
vi anropar den.
Uppgift 6: Rita polygoner
Nu ska du få ihop allt du lärt dig till en funktion som kan rita en polygon med
godtyckligt många hörn. Bra att veta är att vinkelsumman i en n-hörning är 180 * (n - 2)
grader. Fler tips finns längst bak i häftet.
Mer info
Nu har du förhoppningsvis lärt dig lite grunder i Python och kring programmering i
allmänhet. Om du vill lära dig mer om Python så finns det en massa resurser på nätet,
här är några av dem:
•
•
•
Pythons hemsida (för installation etc.): www.python.org/
Bra introduktion till grunderna: http://www.learnpython.org/
En mer avancerad guide: http://learnpythonthehardway.org/book/
Skapat av: Alexander Viklund, CDATE, KTH. 31 mars 2015
Uppdaterat: Carina Edlund, CSC, KTH. 29 september 2015
Tips
Uppgift 3, Tips 1: Du kan approximera en cirkel genom att rita en polygon (liksidig
månghörning) med väldigt många hörn.
Uppgift 3, Tips 2: Testa att vrida dig lite (1 grad) och gå en väldigt kort sträcka (2 steg)
väldigt många gånger tills du gått ett helt varv runt.
Uppgift 6, Tips 1: För att skapa en innervinkel som är n grader ska du vrida dig (180-n)
grader.
Uppgift 6, Tips 2: Din funktion bör upprepa följande steg n gånger: gå framåt, vrid dig så
att du får en innervinkel på (180*(n-2))/n grader.
Uppgift 6, Tips 3: Gör följande n gånger. Gå 500/n steg framåt. Vrid dig
180-(180*(n-2))/n grader åt vänster.
Skapat av: Alexander Viklund, CDATE, KTH. 31 mars 2015
Uppdaterat: Carina Edlund, CSC, KTH. 29 september 2015