Skilpadder
Skrevet av: Oversatt fra Code Club UK
Oversatt av: Bjørn Einar Bjartnes
Introduksjon:
I denne modulen skal vi lære et programmeringsspråk som heter Python. Personen som laget det kalte det opp etter sitt favorittprogrammet på TV: Monthy Pythons Flyvende Cirkus. Python brukes av mange forskjellige programmerere til mange forskjellige ting. Python brukes av YouTube, NASA, CERN og andre. Hvis din Kodeklubb har en Raspperry Pi kan du bruke Python til å programmere den. Mange elsker Python fordi de synes det er lett å lese (i motsetning til språk de synes er vanskeligere å lese). Her er meningene mange, når du lærer flere språk får du sikkert også sterke meninger om dem. Å være i stand til å lese kode er viktig for en programmerer, kanskje like viktig som å kunne skrive den.
Steg 1: Hei, Skilpadde!
Nå skal vi ha det litt gøy med skilpadder. En skilpadde er en liten robot som tegner seg selv på skjermen din, vi kan få den til å bevege seg rundt med Python-kommandoer.
Sjekkliste
-
from turtle import * forward(100)
Tips
Python-filer skal alltid ha filnavn som slutter med .py
.
Sjekkliste
-
from turtle import * speed(11) shape("turtle") forward(100) right(120) forward(100) left(90) backward(100) left(90) forward(50)
Vinkler og grader
Lek deg litt med å lage dine egne figurer ved å bruke forward
, backward
, left
, right
. Husk at forward
og backward
bruker pixler, mens left
og right
bruker grader. La oss undersøke en skilpadde som bever seg til høyre.
Nord
0
|
Vest | Øst
270 -----|----- 90
|
|
180
Syd
Når skilpadden ser nordover og du ber den snu seg 90 grader til høyre, ser den østover. Snur du den 180 grader fra nord, ser den sydover, og snur du den 270 grader fra nord ser den vestover. Snur du 360 grader stopper den der den begynte. Kanskje er det lettere å tenke på som snowboard-triks?
Hva med å snu mot venstre?
Nord
0
|
Vest | Øst
90 -----|----- 270
|
|
180
Syd
Når skilpadden ser nordover og du ber den snu seg 90 grader mot venstre, ser den vestover. Når skilpadden ser nordover og du ber den snu seg 180 grader mot venstre ser den sydover, og om den ser nordover og du ber den snu seg 270 grader ser den østover. Snur du 360 grader er du tilbake der du starter, 360 grader er alltid helt rundt.
Hva gjør koden på starten av programmet vårt?
-
from turtle import *
forteller Python at vi vil bruke skilpadde-biblioteket (turtle), en samling av kode vi kan bruke for å tegne på skjermen. Å bruke et ferdig bibliotek gjør at vi kan spare tid og gjenbruke andres arbeid. -
speed()
bestemmer farten til skilpadden. Vi må gi inn en verdi mellom 1 og 11, der 11 er det raskeste og 1 er det treigeste. -
shape()
Vi bruker formen(shape) "turtle" (skilpadde), men vi kan også si at vi vil at figuren skal se ut som "arrow" (pil), "circle" (sirkel), "square" (kvadrat), "triangle" (trekant) eller "classic" (klassisk).
Vi kommer til å bruke disse instruksjonene på toppen av alle programmene våre i denne leksjonen. Hvis du vil kan du forsøke å gi skilpadden en av de andre formene, som pil, og få den til å gå så fort eller sakte som du vil.
Steg 2: Tegne figurer!
La oss lage et kvadrat ved å fortelle skilpadden hvordan den skal bevege seg rundt.
Sjekkliste
-
from turtle import * speed(11) shape("turtle") forward(100) right(90) forward(100) right(90) forward(100) right(90) forward(100) right(90)
Lagre programmet ditt og velg
Run -> Run Module
. Ser du en firkant? Skilpadden snur seg 90 grader fire ganger, og ender opp med å se den samme retningen som den starten. å snu 90, 90, 90 og så 90 grader igjen snur skilpadden totalt 360 grader.Hva med en trekant? En trekant har tre hjørner, så vi må snu tre ganger. Hvis vi vil ende opp i samme retning, må vi snu 360 grader, akkurat som med firkanten. Derfor snur vi 120 grader, deretter 120 grader og så en gang til.
-
from turtle import * speed(11) shape("turtle") forward(100) right(120) forward(100) right(120) forward(100) right(120)
Velg en farge
Hva er yndlingsfargen din? Du kan endre fargen på linjene ved å bruke funksjonen pencolor
(Python staver på amerikansk, og amerikanerne staver colour uten u.). Du kan også endre størrelsen på pennen ved å bruke pensize
:
Sjekkliste
-
from turtle import * speed(11) shape("turtle") pensize(10) pencolor("red") forward(100) right(120) pencolor("blue") forward(100) right(120) pencolor("green") forward(100) right(120)
Steg 3: Gjenta deg selv (med en for-løkke)
Det siste programmet var de samme kommandoene igjen og igjen. Istedenfor å skrive dem ned, la oss be maskinen om å gjenta dem for oss. Du har vært borti iterasjon i Scratch ved å bruke Forever
og Repeat
/Repeat until
blokker. I Python brukes for-løkker når du har kode som du vil gjenta n ganger. I dette eksemplet vil vi gjenta koden (den som er skjøvet inn) 4 ganger fordi en firkant har 4 sider.
Sjekkliste
-
from turtle import * speed(11) shape("turtle") for count in range(4): forward(100) right(90)
-
Legg merke til at koden er skjøvet inn, indentert, eller dyttet til høyre under for-løkken. Python bruker mellomrom for å vite hvilke kommandoer som skal gjentas. Du kan bruke Tab-tasten for å få IDLE til å indentere, eller bruke Shift-Tab til å ta dem bort.
-
from turtle import * speed(11) shape("turtle") for count in range(4): forward(100) right(90)
-
Fikk du en rett linje? Python vil gjenta
forward
fire ganger, og deretter snu til høyre. Python bruker mellomrom for å gruppere kommandoer sammen, akkurat som Scratch bruker blokker. Python klager til deg om du ikke har fått mellomrommene riktig. -
Endre filen så den ser slik ut:
from turtle import * speed(11) shape("turtle") sides = 4 length = 100 angle = 90 for count in range(sides): forward(length) right(angle)
Oppgave: Tegn de andre formene
Kan du tegne noen av figurene under bare ved å endre verdiene?
Husk, en trekant har tre sider og vi må derfor snu 120 grader i hvert av de tre hjørnene for at det skal bli 360 grader tilsammen. For en firkant må vi snu 90 grader i hvert hjørne, som også blir 360 grader.
Hvis du snur seks ganger, hvor mange ganger må du snu for at det skal bli 360 grader? Prøv med forskjellige tall og se hva som skjer.
Steg 4: Snu, snu, snu
Istedenfor å regne ut vinklene, kan vi ikke heller få datamaskinen til å gjøre det for oss? Python lar deg plusse, trekke fra, gange og dele. Vi kan skrive sides = 4 + 1
istedenfor 5, eller sides = 4 - 1
istedenfor 3. For multiplikasjon bruker Python *
, og for divisjon skriver vi /
. Hvis vi må snu 360 grader tilsammen, kan vi regne ut vinkelen vi trenger. For en firkant er 360 / 4
lik 90, for trekanten er 360 / 3
lik 120.
Sjekkliste
-
from turtle import * speed(11) shape("turtle") sides = 4 length = 20 angle = 360/sides for count in range(sides): forward(length) right(angle)
Steg 5: Fylte figurer
Sjekkliste
-
from turtle import * speed(11) shape("turtle") sides = 4 length = 20 fillcolor('red') pencolor('red') begin_fill() angle = 360/sides for count in range(sides): forward(length) right(angle) end_fill()
Akkurat som med
pencolor
velgerfillcolor
fargen skilpadden skal bruke for å fylle inn figurene du tegner. Denne koden tegner en rød firkant med en rød strek rundt.Du kan bruke
begin_fill()
for å fortelle skilpadden at den skal fargelegge figuren du tegner, og siend_fill()
for å si at du er ferdig.
Steg 6: Pennen går opp, pennen går ned
Hvis du vil flytte skilpadden uten at den skal sette spor etter seg, kan du bruke penup()
og pendown()
for å slå av og på at skilpadden skal tegne.
Sjekkliste
-
from turtle import * speed(11) shape("turtle") pencolor('red') for count in range(20): penup() forward(10) pendown() forward(20)
Hjem, kjære hjem på skjermen
Et par triks på slutten: home()
får skilpadden til å gå hjem dit den begynte, clear()
tørker alle sporene av skjermen, og reset()
flytter skilpadden og renser opp skjermen.
Steg 7: Gjør hva du vil!
Du kan forward()
, backward()
, left()
, right()
, du kan gjenta ting med for count in range(4)
, endre farger, endre fart og til og med fylle figurer!
Kan du tegne et hus, en fugl? En slange? En katt? En hund? En løve? Du kan kombinere figurer og se hva du kan lage. Kan du tegne en robot?
Forbedre denne siden
Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!