Programmera Turtle i Python (pdf 142 kB)
Transcription
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