PROGRAMMERING I PYTHON
ALGORITMER OG KODE


Åprogrammerebetyråskriveinstruksjoner tilenPComhvasomskalskje.Dettelikner littpåålageenmatoppskrift.Duskriveralle instruksjonersomskaltilforatenannen personskalkunnelagedensammeretten. ViskriverinstruksjoneneiPythonogsiervi programmerer.
Programmeringsspråk
Blokkbaserte:Scratch, Blockly
Tekstbaserte:Python, Javascript,C++,PHP, Swift,Ruby,Go
Vimenneskersnakkermangeforskjelligespråk.Påsammemåte fnnesdetenrekkeulikespråkvikanprogrammerei.Idenneboka programmererviiPython.
Nårduskriverentekst,tegnerengrafellerredigereretbildepåPC-en, brukerduulikeprogrammer,foreksempelWord,GeoGebra,Paintog andre.TilsvarendekanviskrivePython-kodeifereprogrammereller miljøer,foreksempelSpyderellerThonny.SelvePython-kodenerden sammeuansetthvorviskriverden,mendeulikeprogrammeringsmiljøeneharlittforskjelligefordelerogulemper.
Devanligsteprogrammeringsmiljøene
Etegetprogram:
Spyder,Thonny, Mu,PyCharm, Pythonista,Pyto ogandre
Etnettbasert program:Replit, Trinket,Programiz ogandre
Etdokumentfokusertprogrammeringsmiljø: JupyterNotebook
Etprogrammeringsmiljøbeståravtodeler–ettekstvindu,hvordu skriverselvePython-koden,ogetvindu,derresultatetfraprogrammet kommer.Dettevinduetkalleskonsollen.Hvordandetteserutvariererfra programtilprogram.NedenforserdustandardvinduettilSpyder:
Tekstvinduet
Konsollen
ISpyderertekstvinduettilvenstreogkonsollennedersttilhøyre. Øversttilhøyrekanduvelgemellomfaner,deriblantenoversiktover variablene.IThonnyertekstvinduetøverstogkonsollennederst.Til høyrekanduforeksempelvelgeåviseenoversiktovervariablene.
Vikanregneikonsollenpåsammemåtesomvigjørpåenkalkulator.Vi regnerut3 + 4vedåskrivedetinnikonsollenogtrykkerpåenter:
Vifårat3 + 4 = 7.Nårviskriverlangkode,erdetimidlertidmerpraktisk åskriveitekstvinduet.Nårviønskeråviseetresultat,sendervidettil konsollenmedkommandoen print(<detduskalprinte>) Heretterprogrammererviderformestitekstvinduet.
Itekstvinduetskrivervi:
1 print('Programmering er gøy!')
Derettertrykkervipåknappenmerketmed«Runfle»/«Runcurrent script»ellerliknende.OfteerdetetgrøntsymbolsomliknerpåenPlayknapp: .Dakommerfølgendetekstoppikonsollen:
Programmeringergøy!
Gratulerer,duharnåskrevetdittførsteprogramiPython!Programmeter påbareénlinjeoginneholderkunkommandoen print,sammenmed tekstensomskalvises.
Somvisåovenfor,brukervi print tilåsendeteksttilkonsollen.Vi kallerdetgjerneåskrivetilskjermelleråprinte.Detskjeringentingi konsollenutenatvibruker print-kommandoen.Såhvisvivilhasvareti etregnestykkeskrevettilkonsollen,måviprintesvaret.
::: EKSEMPEL1.1
Regnut.
a)23 · 5
b) 2 + 8 11
LØSNING
Viskriveretprogramsomregnerut.
1 print(23*5)
a)
Nårvikjørerprogrammet,fårvi115ikonsollen.
1 print(2+8‑11)
b)
Nårvikjørerprogrammet,fårvi 1ikonsollen.
Programmeringengirennaturligstrukturpåarbeidet.Viskriver utregningeroginstrukseritekstvinduet,ogbruker print-kommandoen tilåstyrehvasomblirsynligikonsollen.Eksempeletoverviserat tegnenefordefreregnearteneerdesammesomdepleieråværepåen datamaskin.Tegneneformultiplikasjonogdivisjonvirkerpådetallene somstårumiddelbartforanogbaktegnet:
3+4*5‑3/6‑1 betyr3 + 4 5 3 6 1
Detbetyratmultiplikasjonstegnetvirkerbarepå4og5,mensdivisjonstegnetvirkerpå3og6.Hvisviskalavvikefradette,brukerviparenteser.
::: EKSEMPEL1.2
Regnut3 + 4 + 7 2 + 1.
LØSNING
Visetterparantesrundttelleren,sidendenharfereledd:
1 print(3+(4+7)/2+1)
Hvisvikjørerdetteprogrammetfårvi9,5.
Viskriverpotensermeddobbeltgangetegn.Detbetyrat23 skrivessom
2**3 og52 skrivessom 5**2.
IPythonbrukervipunktumsomdesimalkomma.
::: EKSEMPEL1.3
Regnut34,2442 18,441 + 2 · 312 .
LØSNING
Vibrukerpunktumsomdesimalkommaogskriverinn:
1 print(34.2442‑18.441+2*3**(12))
Nårvikjørerprogrammet,fårvi1062897,80.
Detervanligåbrukeetmellomrompåhversideavtegneneforplussog minus,menikkevedmultiplikasjonogdivisjon.Detteerimidlertidforat detskalværelettereåleseogsehvasomhørersammen,ogharingen efektpåhvordanPythontolkerdet.
Nårviskalskriveenteksttilkonsollen,brukervianførselstegn.
::: EKSEMPEL1.4
Skriv«Jeglikeråtelle.»tilkonsollen.
LØSNING
Vibrukerenkleellerdobleanførselstegnrundtteksten,inni printkommandoen:
1 print('Jeg liker å telle.')
addisjon: +
subtraksjon: ‑
multiplikasjon: *
divisjon: /
potens: **
Nårvikjørerprogrammet,blirteksten«Jeglikeråtelle.»skrevetut: Jeglikeråtelle.
Hvisviskalskriveutfereting,kanvibrukefere print-kommandoer:
1 print('Arealet av trekanten er ')
2 print(0.5*3*5)
Ulempenmeddetteeratvifårlinjeskiftetterhver print-kommando:
Arealetavtrekantener
7.5
Vikallerdetsomstår inniparentesentil enkommandoforet argument.
Dettekanvifksevedåleggetiletekstraargumenttil print,nemlig «end».Hvisviikkeskrivernoe,gir«end»etlinjeskifttilslutt.Hvisvivilha etmellomrom,skriverviforeksempel print(3+4,end=''):
::: EKSEMPEL1.5
Enrettvinklettrekanthargrunnlinje3oghøyde5.Bestemarealet.
LØSNING
1 print('Arealet av trekanten er', end='')
2 print(0.5*3*5)
Nårvikjørerprogrammet,fårvi Arealetavtrekantener7.5
Vioppnårdetsammemedetkommamellomhvertingvivilprinte:
1 print('Arealet av trekanten er',0.5*3*5)
Dettegirsammeoutput:
Arealetavtrekantener7.5
DefestekommandoervitrengererinnebygdiPython.Avogtiltrenger viitilleggålasteinnekstrakommandoer,somliggerlagretisåkalte biblioteker.Vilasterinnbibliotekenemedkommandoen import:
1 import math
KommandoenilinjaoverlasterinnbiblioteketMath.Dettebiblioteket inneholdervanligefunksjonerogsymboler,somblantannetkvadratrot og π.NårviskalbrukekommandoerfraMath-biblioteket,skrivervi «math.»forankommandoen.Kvadratrotfårvidamedkommandoen sqrt() med math. somforstavelse.
::: EKSEMPEL1.6
Regnut √2.
LØSNING
1 import math
2 print(math.sqrt(2))
Nårvikjørerprogrammet,fårvi1,4142135623730951tilsvar.
Math-biblioteketmålastesinnialleprogrammerderviskalbrukedet. Hvisviskalbrukekonstanten π,skrivervi math.pi.
::: EKSEMPEL1.7
Beregnarealetavensirkelmedradius3.
LØSNING
1 import math
2 print(math.pi*3**2)
Vikjørerprogrammetogfåratarealeteromtrent28,274.
1.1
BrukPythontilåregneut
97,2 + 3 · 11,13
1.2
LagetprogramiPythonsomregnerut
88 · 45 12 · 6
sammenmedenforklarendetekst.
1.3
Lagetprogramsomskriverutteksten«Their songplayed.Theydancedforever.».
1.4
LagetprogramiPythonsomregnerut
1.5
LagetprogramiPythonsomregnerut volumetavensylindermedradius4,5cmog høyde17,8cm.
1.6
SkrivetprogramiPythonsomregneruten desimaltilnærmingav 1 + √5 2 .
1.7
Arealetavettrapesmedhøyden h ogder sidene a og b erparallelle,er
A = (a + b) · h 2
SkrivetprogramiPythonsomregnerut arealetavettrapesderdeparallellesidelengdeneer14,3cmog10,4cmoghøyden er13,6cm.
NårviprogrammereriPython,virkerendeltinglittuvantogforvirrende istarten.Eteksempelerdesimaltall.Kanvistolepåalledesimalene Pythonviseross?
Viregnerlittikonsollenforåsjekke:
In[1]:0.1+0.1
Out[1]:0.2
Detteersomforventet,siden0,1 + 0,1 = 0,2.Menseher:
In[2]:0.1+0.1+0.1
Out[2]:0.30000000000000004
Detteserrartut!Vivetjoat0,1 + 0,1 + 0,1 = 0,3,ogikke 0,30000000000000004.
Detvisersegatvibarekanstolepåca.15–16sifreiPython.Altsom kommerettermåvibaresebortfra.Slikerdetiandredataprogrammer også,somforeksempelGeoGebraogExcel,mendetteblirvanligvis skjultfoross.
Årsakentildette,eratPC-enharbegrensetantalltalltilgjengelig.Det eringengrenserforhvilketallvikanskriveinniPython,menPC-enhar ikkeuendeligmangetalldenkanbruke.Noenharderfortattetvalg,og PC-enharca.15–16sifrevikanstolepå.
Nårviregnerpåenkalkulatorellerietmatematikkprogramsomfor eksempelGeoGebra,regnerviettogettregnestykke,linjeforlinje.Vi brukerdetsvaretvifårvidereiutregningen.Vitenkerossforeksempel atLarsskalmaleenstorveggpåskolen.Veggener8mlangog4mhøy. Veggenskalmalesmedtrestrøkavenmalingsomdekker6L/m2 .Hvor myemalingtrengerhan?Viregnerslik:
Arealetavveggen:8 · 4 = 32
Arealsomskalmales:32 · 3 = 96
Mengdemaling:96 : 6 = 16
Larsmåaltsåkjøpe16Lmaling.
Nårviskalprogrammeredette,girviegnenavntildeulikesvarene underveisiutregningen.Dissenavnenekallervi variabler .Koden
nedenforregnerutdetsamme:
1 vegg =8*4
2 areal = vegg*3
3 maling = areal/6
4
5 print(maling)
Nårvikjørerprogrammet,fårvi16tilsvar.
Variablereraltsåenmåtevikantavarepåmidlertidigeverdier,slikatvi kanbrukedemvidereiprogrammet.
IPythonopprettervivariablervedåtilordneenverdivedhjelpav likhetstegnet.
1 svar =15+3
Nårvikjørerkodenovenfor,fårvariabelen«svar»verdien18.
::: EKSEMPEL1.8Mariaplanleggerentreningsøkt.Hunskalvarmeopp18minutter. Deretterskalhunha5 × 4minintervallermed2minutterspause mellomhvertintervall.Tilsluttharhunnedjogg10minutter. Hvorlangtidvarertreningsøkta?
ViskriveretprogramiPythonsomregneruttiden:
1 oppvarming =18
2 intervalltid =5*4
3 pausetid =4*2
4 nedjogg =10
5 totaltid = oppvarming + intervalltid + pausetid + nedjogg
6 print('Treningsøkta tar', end='')
7 print(totaltid, end='')
8 print('minutter.')
Nårvikjørerprogrammetfårvidetteresultatet:
Treningsøktatar56minutter.
Vikangodtbrukevariabelensforrigeverdinårvitilordnernyverditilen variabel.
1 svar =15
2 svar = svar +5
3 print(svar)
Nårvikjørerkodenovenforblirførstvariabelen«svar»opprettetmed verdien15.Deretterblirverdiensatttildenverdienvariabelenhadde tidligere,addertmed5.Resultatetnårvikjørerprogrammetblir20.
Dissereglenegjelderforhvilketegnvikanbruketilvariabler:
LOVLIGNAVN ULOVLIGNAVN
Vikanbrukevanlige bokstavera–å,A–Å.
Vikanbruketall0–9,men ikkeistartenavenvariabel.
startellerSTART terningto
start1
3et Vikanbrukeunderstrek(«_»). start_1
start-1
Noennavneropptatt summen sum Pythonleserkodenovenfraognedover,fravenstremothøyre.Nårvi printerenvariabel,spillerdetingenrolleomvariabelenskifterverdipået seneretidspunkt.Ikodennedenforharvariabelen«svar»verdien15når denblirprintet,sådeteraltsåtallet15somkommerikonsollen.Ilinjen nedenforblirverdienendrettil30,mendetvisesikkeikonsollen.
1 svar =15
2 print(svar)
3 svar = svar*2
Mangeprogrammeringsmiljøerharmulighettilåviseenoversiktover hvilkenverdivariableneharnårprogrammeterferdig.Detteeroftetil godhjelp.ISpyderheterdennevisningen«VariableExplorer».Etterå kjørtprogrammetovenfor,serdenslikut:
Dettebetyratvariabelen«svar»harverdien30nårprogrammeterferdig.
Nårvibrukerprogrammeringtilåløsematematikkoppgaveravsluttervi gjerneprogrammetmedåskriveutverdienavenvariabelsammenmed enforklarendetekst.Dettekanvigjørepåferemåter.
Enmuligheteråprintetekstenogvariabelenisammekommando,atskilt medkomma:
1 svar =15
2 print('Svaret er', svar)
Nårvikjørerdetteprogrammet,fårvi«Svareter15»ikonsollen.
Enannenmåteeråbrukeetsåkaltf-literal,enformaterttekst.Denne lagervivedåsettebokstaven«f»foranetanførselstegn.Nårvisåskal setteinnenvariabel,setterviparentesene«{»og«}»rundt:
1 tall1 =43
2 tall2 =6
3 print(f'Tallene er {tall1} og {tall2}.')
Nårvikjørerdetteprogrammet,fårvi
Talleneer43og6.
Virunderenklestavmedenf-literal.Rettførhøyreparentes«}»setter vietkolonogetpunktum.Deretterskrivervihvormangedesimalervi ønsker,etterfulgtavbokstaven«f».
::: EKSEMPEL1.9
Regnut 13 7 ogrundavtiltredesimaler.
LØSNING
1 tall =13/7
2 print(f'Variabelens verdi er {tall:.3f}.')
Nårvikjørerprogrammetfårvi
Variabelensverdier1.857.
Kommandoen round(<variabel>,<antalldesimaler>) eren annenmåteårundeavpå.Vibrukerdenslik:
1 svar =13/7
2
3 print(round(svar,3))
Kodengirsvaret1,857.Viseratdetførsteargumentettil round ertallet somskalrundesav,mensdetandreargumenteterantalldesimaler.
«f»stårfor«fksert (bestemt)antall desimaler»
1.8
Lagetprogramhvordusettervariabelen «svar»til28ogskriverutverdienavvariabelenmedensvarsetning.Resultatetav programmetskalbli:
Verdienavsvarer28.
1.9
Lagetprogramderduopprettervariabelen
1.10
Regnut23 : 7ogrundavtiléndesimali svaret.
1.11
Velgtotallmellom2og20.Skrivetprogram derduleggerdetotalleneivariablene a og b.Programmetskalskriveuthenholdsvissummen,diferansenogproduktetav
talleneihversinsvarsetning.Foreksempel «Summenav2og5er7».
1.12
EnsommerukekjørerJohannebåtensini omlag17timer.Båtenforbukeromtrent7 literbensinpertime.Bensinprisenerdenne uka26kronerperliter.
BrukPythontilåregneuthvormyebensinforbruketkosterdenneuka.
1.13
Skrivetprogramsom:
Opprettervariabelen«tall»medverdien
5
Endrerverdientil10
Leggertil11
Leggertil6
Dobler
Skriverutverdien
Viharnålærtatvifårresultateneutfraetprogramoginnikonsollen medkommandoen print.Tilsvarendefårviopplysningerfrakonsollen inniprogrammetmedkommandoen input.
input() print()
INN UT program
Nedenforserduhvordanvikanbruke input-kommandoen:
1 navn = input('Skriv inn navnet ditt:')
2 print(f'Du heter {navn}.')
Nårvikjørerdetteprogrammet,kommerførstdetteoppikonsollen:
Skrivinnnavnetditt:
Hvisvidaskriver«Markus»ikonsollen,blirdettenavnetlagretivariabelen«navn»ilinje1iprogrammet.
Nårvitrykket«enter»,blirnavnetskrevetutmedensvarsetningfralinje2 iprogrammet:
DuheterMarkus.
Pythonoppfattertallogtekstpåforskjelligmåte.Vikanseeteksempeli detteprogrammet:
1 a =13
2 print(2*a)
3 b= 'matematikk'
4 print(2*b)
Nårvikjørerprogrammet,fårvidette:
Ieksempeletser
dudetvikaller
kommentarertil
koden.Pythonhopper overaltsomkommer
ettertegnet«#»på enlinje.Detgjørat
vikanskrivesmå forklaringertilkoden.
Detvisersegaltsåatgangetegnet * betyruliketingfortallogtekst.Når detblirbruktpåtall,fungererdetsomvanligmultiplikasjon,mensnår detblirbruktpåentekst,blirtekstenrepetertlikemangegangersom talletsier.
Ivariabeloversiktenserviforskjellenpådetovariablene«a»og«b»:
Variabelen«a»eravtypen int,somerenforkortelsefor integer,altså detengelskeordetforheltall.
variabelen«b»eravtypen str fradetengelskeordet string,som betyrstreng,tekststrengellertekst.
TYPE ENGELSK NORSK str string streng,tekststreng,tekst int integer heltall float foating-pointnumber desimaltall,fyttall
Resultatetav input-kommandoenbliralltidtolketsomen str.Dersom detskalværeettall,måvimanueltgjøredetomtil int eller float. Kommandoeneforågjøreomtilenannentypeheterdetsammesom typen.Viserhvordanvikangjøredetteieksempeletnedenfor.
::: EKSEMPEL1.10
Skrivetprogramsomberomettallogsådoblertallet.
Vilagrerresultatetav input-kommandoenienvariabel,og oversettertildesimaltallmed float:
1 # Ber omet tall
2 tall = input('Skriv inn et tall:')
3 # Konverterer til float
4 tall = float(tall)
5 # Dobler
6 dobbelt =2*tall
7 print(f'Det dobbelte av {tall} er {dobbelt}.')
Nårvikjørerprogrammetfårviteksten«Skrivinnettall:»i konsollen.Dersomviskriverinn«12.3»ogtrykkerpåenter,ser detslikut;
Skrivinnettall:12.3
Detdobbelteav12.3er24.6.
Dersomvibytterut float med int ieksempeletover,vilprogrammet barefungeremedheltall.Hvisviskriverinnetdesimaltall,vilvifåen feilmelding.
ValueError:invalidliteralforint()withbase10: '12.3'
1.14
Lagetprogramsomberometnavnogså svarermedenhilsenmeddettenavnet.
1.15
Lagetprogramsomberomettallog skriveruthalvpartenavtallet.
1.16
Lagetprogramsomberomradiusien sirkelogsåsvarermedarealetavsirkelen.
1.17
Lagetprogramsomberomlengdeog breddeietrektangelogsomsåskriverut arealetogomkretsenavrektangelet.
1.18
a)Lagetprogramderduberomettall. Programmetskalskriveut7merenn detdobbelteavtallet.
b) Lagetnyttprogramderduforandrer mønsteret.Foreksempelkanprogrammethalveretalletogleggetil fre.Fåenannentilåforeslåettall. Programmetskriveruthvilkettallsom hørersammenmeddettetallet.Gjenta helttildenandreforstårmønsteret.
1.19
Lagetprogramsomberomhøydeog grunnlinjeientrekantogsvarermed arealetavtrekanten.
Vilkårhandleriprogrammeringomåbrukeentesttilåavgjørehva programmetskalgjøre.Iprogrammetnedenforsjekkerviomtallet brukerentasterinnerpositivt.
1 tall = input('Skriv inn et tall:')
2 tall = float(tall)
3
4 if tall >0:
5 print(f'Tallet {tall} er positivt.')
Nårvikjørerdetteprogrammet,blirvibedtomåskriveinnettall.Svaret vigirbliroversatttil float oglagtivariabelen«tall».SåtesterPython om«tall»erpositivt.Hvistalleterpositivt,blirdetskrevetutentekst omattalleterpositivt.Dersomvikjørerprogrammetogskriverinnfor eksempel17,såvildetseslikut:
Skrivinnettall:17
Tallet17.0erpositivt.
EnsliktestkallerviiPythonen if-test.Programmetovenforkanutvides medeninstruksjonomhvasomskalutføresdersomtesten ikke ersann. Loddrettunder if kanviskrive else:,sombetyr«ellers».
1 tall = input('Skriv inn et tall:')
2 tall = float(tall)
3
4 if tall >0:
5 print(f'Tallet {tall} er positivt.')
6 else:
7 print(f'Tallet {tall} er ikke positivt.')
Etterenif-teststårdet alltidetkolon. Ikodenovenforblirlinje5utførthvistestenersann,menslinje7blir utførthvistestenikkeersann.
Ienif-testkanvibrukedissetegnene:
TEGN BETYDNING
< Mindreenn
<= Mindreennellerlik
> Størreenn
>= Størreennellerlik
== lik
!= ikkelik not() motsattbetydning
Skrivetprogramsomberomettallogsjekkeromtalleteråtte.
LØSNING
Vibruker input foråbeomettall.Såkonverterervisvarettil desimaltallmed float.En if-testavgjøromtalleteråtte.
1 # Ber omet tall
2 tall = input('Skriv inn et tall:')
3 # Konverterer til float
4 tall = float(tall)
5
6 # Avgjør om tallet er 8
7 if tall ==8:
8 print('Du har skrevet inn tallet 8.')
9 else:
10 print('Du har skrevet innnoe annet enn 8.')
Kodenieksempeletovenforkanviillustrereietsåkalt fytskjema. Flytskjemaetviserenoversiktoverhvaprogrammetgjør:Førstfår variabelen«tall»enverdi.Deretterblirsvaretenten«taller8»eller«taller noeannetenn8»,avhengigavomtesten«tall==8»ersannellerusann.
tall tall == 8 janei tall er noe annet enn 8 tall er 8
IPythonbrukervi«=» nårvitilordneren verditilenvariabel og«==»foråsjekke omtoutsagnerlike.
Ienif-testkanviogsåhaferevilkår.Dakombinerervikommandoene else og if ogskriver elif.Detteerenforkortelsefor else–if.
Vikanutvideforrigeeksempelslikatprogrammetavgjøromtallet brukerenskriverinnerlikåtte,størreennåtteellermindreennåtte: ::: EKSEMPEL1.12
Gjørendringerikodenfraeksempel11slikatdetsjekkeromtallet erlikåtte,størreennåtteellermindreennåtte.
LØSNING
Vileggerinn elif mellom if og else ikodenforåsjekkeom talleterlikåtte,størreennåtteellermindreennåtte.Selinje9.
1 # Ber omet tall
2 tall = input('Skriv inn et tall:')
3 # Konverterer til float
4 tall = float(tall)
5
6 # Avgjør om tallet er 8
7 if tall ==8:
8 print('Du har skrevet inn tallet 8.')
9 elif tall >8:
10 print('Du har skrevet innett tall som er større enn 8.')
11 else:
12 print('Du har skrevet innett tall som er mindre enn 8.')
Vikankombinereutsagnitestenmedkonjunksjonene and og or, sombetyrhenholdsvis«og»og«eller».Itabellennedenforserdunoen eksemplerpåtester.
DetosannhetsverdienesannogusannheteriPythonhenholdsvis True og False.Alletesterblirevaluerttilenten True eller False
2==1+1 sann Høyreogvenstresideerlike.
2==1+2 usann Venstresideer2,høyresideer3
3<6 sann 3ermindreenn6
not(3<6) usann Deterikkesantat3ikkeer mindreenn6
3>6 usann 3erikkestørreenn6
not(3>6) sann Detersantat3ikkeerstørreenn 6
2>1and6>3 sann Beggeersanne
2>1and6<3 usann 6erikkestørreenn3,såbeggeer ikkesanne
2>1or6<3 sann Minsténavdemersann,nemlig denførste.2erstørreenn1.
Vileggermerketilatlinjeneumiddelbartetter if, elif og else er rykketinnfravenstremarg.Innrykketvisernår if-testenerferdig.
1 tall = float(input('Skriv inn et tall:'))
2 if tall <10:
3 print('Tallet er mindre enn10.')
4 else:
5 print('Tallet er ikke mindre enn10.')
6 print('Dette er sistelinje.')
Idetoprogramkodenenedenforerenesteforskjellatkodentilhøyrehar etinnrykkistartenavlinje6.Idenførstekodenblirlinje6utførtuansett: Vikanbådehenteinn informasjonoggjøre detomtiletheltall ellerfyttallpåénlinje vedåskrive«tall= int(input(’Skrivinnet heltall:’))»eller«tall= foat(input(’Skrivinn ettall:’))»
Idennekodenblirlinje6utførtbarehvistestenilinje2erusann:
1 tall = float(input('Skriv inn et tall:'))
2 if tall <10:
3 print('Tallet er mindre enn10.')
4 else:
5 print('Tallet er ikke mindre enn10.')
6 print('Dette er sistelinje.')
Denøverstekoden,uteninnrykk,girdetteresultatet:
Skrivinnettall:5
Talletermindreenn10. Detteersistelinje.
Dennederstekodengirdette: Skrivinnettall:5 Talletermindreenn10.
FRABLOKKTILTEKST
En if-testiPythontilsvarerenstyringsblokkmed«hvis»iScratch: Scratch-programmetnedenforsetterførstvariabelen«tall»til10. Derettersjekkerprogrammetom«tall»erstørreenn10.Hvisdet erdet,sendesmeldingen«ja».Hvisdenikkeerdet,spilleslyden «mjau». når klikkes
sett tall til 10
hvis tall > 50 ellers
sendmelding ja
startlyden mjau
DettetilsvareromtrentPython-programmetnedenfor:
1 tall =10
2
3 if tall >50:
4 print('ja')
5 else:
6 print('mjau')
Istedetforåsendemeldingogspilleavenlyd,brukerdette programmet print.
1 print(43//5)
2 print(43%5)
Nårviutførerdivisjonforhånd,erdetikkealltiddivisjonengåropp.Da fårvienrest.Hvisviforeksempeldividerer43på5fårvi8heleog3irest. Pythonharegneoperatorersomregnerutdisse,nemlig«//»og«%».Vi prøvervårteksempel: Enoperatorerettegn ellerkombinasjonav tegnsomuttrykkeren regneoperasjon,for eksempel+,-,*,/,**, //,%.
Nårvikjørerprogrammetfårviat 43//5 er8og 43%5 er3.Detbetyrat «//»girantallheleveddivisjonen,mens«%»girrestenveddivisjonen.
Hvisettallerdeleligmedetannettall,errestennull.Vikanderforbruke «%»tilåtestedelelighet.
Skrivetprogramsomberomettallogsåundersøkeromtalleter deleligmed3.
LØSNING
1 tall = int(input('Skriv inn et heltall:'))
2
3 # Tester omvi får null i rest når vi deler på
3.
4 if tall%3==0:
5 print(f'{tall} er delelig med 3')
6 else:
7 print(f'{tall} er ikke delelig med 3')
Vitesterprogrammetunderveisogskriverviinn19ikonsollen:
Skrivinnetheltall:19
19erikkedeleligmed3