Skilpaddeskolen Steg 1: Flere firkanter Steg 2

Skilpaddeskolen
Nybegynner
P ython
Steg1:Flerefirkanter
Sjekkliste
ÅpneIDLE-editoren,ogåpneennyfilvedåtrykke File>NewFile ,oglaossbegynne.
Huskatduskalhatovindueråpne.Deteneer'PythonShell'ogdetandreerforåskrivekodei.
Somsistvildenførstelinjenalltidvære fromturtleimport* foråfortellePythonatviviltegnevedhjelpavskilpaddebiblioteket!
fromturtleimport*
forninrange(4):
forward(100)
right(90)
Lagredetsomennyfil,ogkjørprogrammetframenyenvedåtrykke Run>RunModule .
Huskat forninrange(4) gjentarkoden,ogatkodenmågrupperesmedmellomrom(innrykk)foråværeendelavforløkken.Bruktab(knappenrettovercapslock)foråflyttekode.
Steg2:Forskjelligefirkanter
Laossbrukevariablerforågjøreprogrammetvårtlettereåleseoglettereåendre,akkuratsomvigjordeiforrigemodul.
Sjekkliste
Endreprogrammetsådetserslikut:
fromturtleimport*
sides=4
length=100
angle=360/sides
forninrange(sides):
forward(length)
right(angle)
Kjørdetvedåtrykke Run>RunModule framenyen.Fårdudensammefirkantensomfør?Sjekkatdetvirkerførdugår
videre.
Detteeretlittlangtprogram,mennåkanviendredettilåtegnehvilkenfigurvivil.Problemeterbareatviernødttilåklippe
oglimeprogrammetforåfådettil.Somtidligerekanviskrivekodeforåslippeågjentaossselv(programmerereanstrenger
seggjernelittslikatdekanværelateetterpå!).Dennegangenskalvilageenfunksjon.Enfunksjonerenenkelmåteforå
gjenbrukeenkodeblokk(elleroppskriftomduvil)mangeganger.Funksjonenfåretnavn,ogdettenavnetkanvisenerebruke.
Steg3:Vilagerenfunksjon
Sjekkliste
Viendrerkodenogleggertil defpoly(): . def betyrdefiner,altsåålage.Passpåatkodenharriktiginnrykkogbrukden
nyefunksjonen.Foråfåinnrykkpåflerelinjerkanmanmerkelinjeneogderettertrykketab(knappenrettovercapslock).
Dersomduvilhamindreinnrykk,brukshift+tab.
fromturtleimport*
defpoly():#vilagerfunksjonen
sides=4
length=100
angle=360/sides
forninrange(sides):
forward(length)
right(angle)
pencolor('red')
poly()#vikallerpåfunksjonen
right(180)
poly()
Kjørprogrammet.Hvisdetvirkerskaltorødefirkanterblitegnet.
VispartelitttidvedålageennyfunksjoniPython,ognåkanvitegneenrødfirkanttoganger,utenåskrivehelegreiato
ganger.Dennyefunksjonen poly() erfinforåslippeåskrivesåmye.
Steg4:Hvorforstoppemedfirkanter?
Vierikkeferdigeennå-hvamedåendrefunksjonensådenkantegnehvilkensomhelstform?Sommed forward og right ,kan
visendeverdierinnifunksjonenistedenforåendrekodenhvergang.
Sjekkliste
Endrekodensådenserslikut:
fromturtleimport*
defpoly(sides,length):
angle=360/sides
forninrange(sides):
forward(length)
right(angle)
pencolor('red')
poly(4,100)
right(180)
pencolor('blue')
poly(3,150)
Kjørdenogsehvasomskjer.
Laosstadettelittsakte,fordetteerganskekulegreier.Istedenforåbestemmevariableneifunksjonen,sierviat
funksjonentarnoenverdiersomharnavn,ogsåbrukerviverdienedervitrengerdem.
Viflyttetnoenverdierutavfunksjonen,ogflyttetdemtildendelenavkodensombrukerdem.Nåkanvi,medeneneste
funksjon,tegnehvilkensomhelstform,medhvilkensomhelstfarge.Jegvetikkehvadutenker,mendetteimponerer
meghvergangjegtenkerpådet:Vikanlæredatamaskinennyetriks,ogsåfådentilågjøretriksene.
Åværeistandtilålagenyefunksjonersomkanoppføresegforskjelligbasertpåverdienevigirinneretavdekraftigste
verktøyeneiprogrammering.
Tips
Ipythonfinnesdetfunksjoner,mensiandreprogrammeringsspråkfinnesdetogsånoesomblirkaltprosedyrer.Disse
begrepenegårlittinnihverandre,sådeterikkesåfarligomdereikkeserforskjellen.Enfunksjonskalgjernereturnere
noe,ogdenskalhelstikkegjørenoeannetennåregneutreturverdien.Itilleggburdefunksjonenalltidreturneredet
sammenårdenfårsammeinnputt.Prosedyrerlignerveldigpåfunksjoner,mendefårlovtilåreturnereforskjelligeting
avhengingavandretingenninnputt.Itilleggerdetlovforenprosedyreågjørenoeannetennåreturnerenoe.For
eksempelkanenprosedyretegnepåskjermen.Ipythonerdetingenforskjellpåfunksjonerogprosedyrer,sådeter
vanligåbarekallebeggedelerforfunksjoner.
Steg5:Skilpaddestreker
Sjekkliste
Selvomskilpaddenerenlitenrobotsomkantegne,kandenogsåflyttesegutenåtegne.Huskatvikanbruke penup()
og pendown() foråslåavogpåatskilpaddensetterspor.ÅpneennyPython-fil,ogskrivinnkodenunder:
fromturtleimport*
length=200
fornuminrange(8):
forward(length/16)
penup()
forward(length/16)
pendown()
Detteprogrammettegnerenstipletlinjeoverskjermen.Kjørdetogsjekk!
Steg6:Tegnefigurer
Vikankoblefigur-programmetogstiplet-linje-programmetsammenvedåbytteutfunksjonen forward medkodenviharfor
stipletelinjer.Vibrukerkodenforåtegnefigurerytterst,oginniderbrukervikodenforålagestipletelinjeristedenforhele
streker.
Sjekkliste
Endrekodensådenserutsomfølgende:
fromturtleimport*
speed(11)
shape("turtle")
defdashpoly(sides,length):
angle=360/sides
forninrange(sides):
fornuminrange(8):
forward(length/16)
penup()
forward(length/16)
pendown()
right(angle)
pencolor('red')
dashpoly(4,100)
right(180)
pencolor('blue')
dashpoly(3,150)
Kjørkodenogsehvadengjør.
Vihartofor-løkkerinnihverandre,enytreogenindre.Denytreløkken forninrange(sides) tegnerhverkantavfiguren,
oghvergangkjørerdenindreløkken fornuminrange(8) somtegnerstipletelinjer.
Denytreløkkenbrukervariabelen n foråholdestyrpåhvormangegangerdenhargjentattsegselv,ogdenindreløkken
brukervariabelen num påtilsvarendemåte.Dumåbrukeforskjelligevariabelnavninniløkken,ellersroterdudetbaretil.
Steg7:Byggeklosserforfigurer
Sjekkliste
Laossbrukefunksjonerigjenforåryddeoppikoden.Endrekodenfrasteg6oglaossdelekodenibiter.
fromturtleimport*
speed(11)
shape("turtle")
defdashforward(length):
fornuminrange(8):
forward(length/16)
penup()
forward(length/16)
pendown()
defdashpoly(sides,length):
angle=360/sides
forninrange(sides):
dashforward(length)
right(angle)
pencolor('red')
dashpoly(4,100)
right(180)
pencolor('blue')
dashpoly(3,150)
Kjørkodenogseatdengjørakkuratdetsammesomfør.
Tips
Trikseteratistedenforåbyggeprogrammervedåklippeoglime,kanvilagenyefunksjoneroggjenbrukedem.Dablir
kodenkortereoglittlettereåforstå.
Steg8:Litttilfeldigheter
Hvaomvigjørlitttilfeldigesprellrettførvierferdige?Vikanbedatamaskinenvelgeettallfoross,ellervelgeenfargefoross,
littsomomvikasterterning.Scratchkandetteogså,dabruktevi pick .
Sjekkliste
Iennyfil,skrivinnfølgende:
fromturtleimport*
fromrandomimportrandrange,choice
colors=['red','blue','green']
defpoly(sides,length):
angle=360/sides
forninrange(sides):
forward(length)
right(angle)
forcountinrange(10):
pencolor(choice(colors))
right(randrange(0,360))
poly(randrange(3,9),randrange(10,30))
Lagreogkjørkoden
Programmetskaltegnetifigureriforskjelligefargermedforskjelligstørrelse.Linjen fromrandomimportrandrange,random
henterinnfunksjonene randrange() og choice() .
randrange() plukkerutettallmellomdetlavesteogdethøyestetalletvigirinn,så randrange(1,10) velgerettallmellom
1og9(Pythonbegynnermed1,ogstopperrettfør10).
choice() velgerentingfralistenvigirinn.Enlisteerensamlingavverdier,foreksempel [1,2,3] .Ikodenovenforbruker
vilisten colors ,somharverdiene 'red' , 'blue' ,and 'green' .
Vedåbruke choice() og randrange() kanvibedatamaskinenomåvelgefarge,størrelseogformfoross,ogdet
kommertilåbliforskjelligresultatnestenhverenestegangdukjørerprogrammet.
Fleretingåprøve
Hvamedåprøveflerefarger,elleråendretallene?Hvaskjer?
Lisens: CodeClubWorldLimitedTermsofService Forfatter: OversattfraCodeClubUK
Oversetter: BjørnEinarBjartnes