Skjelpadder
Skrevet av: Omsett frå Code Club UK
Oversatt av: Stein Olav Romslo
Introduksjon:
Her skal me lære eit programmeringsspråk som heiter Python. Personen som laga det kalla det opp etter favorittprogrammet sitt på TV: Monthy Python sitt Flygande Cirkus. Python blir brukt av mange programmerarar til mange ulike ting. Python blir brukt av YouTube, NASA, CERN og mange andre. Viss kodeklubben din har ein Raspberry Pi kan du bruke Python til å programmere den. Mange likar Python fordi det er enkelt å lese (i motsetnad til språk dei synest er vanskelege å lese). Meiningane er mange, og etter kvart som du lærer fleire språk får du nok sterke kjensler for fleire av dei. Å vere i stand til å lese kode er viktig for ein programmerar, kanskje like viktig som å kunne skrive den.
Steg 1: Hei, Skjelpadde!
No skal me ha det moro med skjelpadder. Ei skjelpadde er ein liten robot som teiknar seg sjølv på skjermen din. Me kan få den til å bevege seg rundt med Python-kommandoar.
Sjekkliste
-
from turtle import * forward(100)
Tips
Python-filer skal alltid ha filnamn som sluttar med .py
.
Sjekkliste
-
from turtle import * speed(11) shape("turtle") forward(100) right(120) forward(100) left(90) backward(100) left(90) forward(50)
Vinklar og gradar
Leik deg litt med å lage dine eigne figurar ved å bruke forward
, backward
, left
, right
. Hugs at forward
og backward
brukar pikslar, medan left
og right
brukar gradar. La oss undersøke ei skjelpadde som beveger seg til høgre.
Nord
0
|
Vest | Aust
270 -----|----- 90
|
|
180
Sør
Når skjelpadda ser nordover og du ber den snu seg 90 gradar til høgre, ser den austover. Snur du den 180 gradar frå nord ser den sørover, og snur du den 270 gradar frå nord ser den vestover. Snur du 360 gradar stoppar den der den starta. Kanskje er det lettere å tenke på dette som snowboard-triks?
Kva med å snu mot venstre?
Nord
0
|
Vest | Aust
90 -----|----- 270
|
|
180
Sør
Når skjelpadda ser nordover og du ber den snu seg 90 gradar mot venstre, ser den vestover. Når skjelpadda ser nordover og du ber den snu seg 180 gradar mot venstre ser den sørover, og om den ser nordover og du ber den snu seg 270 gradar mot venstre ser den austover. Snur du 360 gradar er du attende der du starta, 360 gradar er alltid heilt rundt.
Kva gjer koden på starten av programmet vårt?
-
Koden
from turtle import *
fortel Python at me vil bruke skjelpadde-biblioteket (turtle), ei samling av kode me kan bruke for å teikne på skjermen. Å bruke eit ferdig bibliotek gjer at me kan spare tid og gjenbruke andre sitt arbeid. -
Funksjonen
speed()
bestemmer farta til skjelpadda. Me må gi inn ein verdi mellom 1 og 11, der 11 er det raskaste og 1 er det treigaste. -
Funksjonen
shape()
set forma på teiknefiguren vår. Me bruker forma (shape)"turtle"
(skjelpadde), men me kan òg seie at me vil at figuren skal sjå ut som"arrow"
(pil),"circle"
(sirkel),"square"
(kvadrat),"triangle"
(trekant) eller"classic"
(klassisk).
Me kjem til å bruke desse instruksjonane på toppen av alle programma våre i denne oppgåva. Viss du vil kan du prøve å gi skjelpadda ei av dei andre formene, til dømes pil, og få den til å gå så fort eller sakte som du vil.
Steg 2: Teikne figurar!
La oss lage eit kvadrat ved å fortelje skjelpadda korleis 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 vel
Run -> Run Module
. Ser du ein firkant? Skjelpadda snur seg 90 gradar fire gonger, og ender opp med å sjå den same retninga som den starta. Å snu 90, 90, 90 og så 90 gradar igjen snur skjelpadda totalt 360 gradar.Kva med ein trekant? Ein trekant har tre hjørne, så me må snu tre gonger. Viss me vil ende opp i same retning må me snu 360 gradar, akkurat som med firkanten. Difor snur me 120 gradar tre gonger.
-
from turtle import * speed(11) shape("turtle") forward(100) right(120) forward(100) right(120) forward(100) right(120)
Vel ei farge
Kva er yndlingsfarga di? Du kan endra farga på linjene ved å bruke funksjonen pencolor
. Du har kanskje lært at farge på engelsk skrivast "colour" med u. Det er britisk engelsk, men Python brukar amerikansk engelsk, og amerikanarane stavar det "color" utan u. Du kan òg endre storleiken 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 sjølv (med ei for-løkke)
Det siste programmet var dei same kommandoane igjen og igjen. I staden for å skrive dei ned kan me be datamaskina om å gjenta dei for oss. Du har vore borti iterasjon i Scratch ved å bruke For alltid
- og Gjenta
/Gjenta til
-blokker. I Python brukar me for-løkker når me har kode du vil gjenta n
gonger. I dette dømet skal me gjenta koden (som er rykka inn) 4 gonger fordi ein 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 skyve inn, indentert, eller dytta til høgre under for-løkka. Python brukar mellomrom for å vite kva kommandoar som skal bli gjenteke. Du kan bruke tabulatortasten for å få IDLE til å indentere, eller bruke
shift + tab
til å ta det bort. -
from turtle import * speed(11) shape("turtle") for count in range(4): forward(100) right(90)
-
Fekk du ei rett linje? Python vil gjenta
forward
fire gonger, og så snu til høgre. Python brukar mellomrom for å gruppere kommandoar saman, akkurat som Scratch brukar blokker. Python klagar til deg viss du ikkje har fått mellomromma riktig. -
Endre fila 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)
Oppgåve: Teikn dei andre formene
Kan du teikne nokre av figurane under berre ved å endre verdiane?
Hugs at ein trekant har tre sider, så me snur 120 grader i kvart av dei tre hjørna for at det skal bli 360 gradar til saman. For ein firkant må me snu 90 gradar 4 gonger, som òg blir 360 gradar.
Viss du snur seks gonger, kor mange gonger må du snu for at det skal bli 360 gradar? Prøv med ulike tal og sjå kva som skjer.
Steg 4: Snu, snu, snu
I staden for å rekne ut vinklane sjølv kan me få datamaskina til å gjere det for oss. Python let deg leggje til, trekke frå, gange og dele. Me kan skrive sides = 4 + 1
i staden for 5, eller sides = 4 - 1
i staden for 3. For multiplikasjon brukar Python *
, og for divisjon skriv me /
. Viss me må snu 360 gradar til saman kan me rekne ut vinkelen me treng. For ein firkant får me 360 / 4
som er lik 90, for trekanten får me 360 / 3
som er 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 figurar
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
velfillcolor
farga skjelpadda skal bruke for å fylle inn figurane du teiknar. Denne koden teiknar ein raud firkant med ein raud strek rundt.Du kan bruke
begin_fill()
for å fortelje skjelpadda at den skal fargeleggje figuren du teiknar, og seieend_fill()
for å seie at du er ferdig.
Steg 6: Pennen går opp, pennen går ned
Viss du vil flytte skjelpadda utan at den skal setje spor etter seg, så kan du bruke penup()
og pendown()
for å slå av og på at skjelpadda skal teikne.
Sjekkliste
-
from turtle import * speed(11) shape("turtle") pencolor('red') for count in range(20): penup() forward(10) pendown() forward(20)
Heim, kjære heim på skjermen
Eit par triks på slutten: home()
får skjelpadda til å gå heim dit den starta, clear()
tørkar alle spora av skjermen, og reset()
flyttar skjelpadda og reinsar skjermen.
Steg 7: Gjer kva 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 figurar!
Kan du teikne eit hus? Ein fugl? Ein slange? Ein katt? Ein hund? Ei løve? Du kan kombinere figurar og sjå kva du kan lage. Kan du teikne ein 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!