Denne koden gjør jo jobben, men jeg kjenner at jeg er glad ikke oppgaven var å skrive ut de første 100 rektangeltallene.
Dersom vi skal gjenta liknende oppgaver kan det være praktisk å benytte seg av løkker, og vi starter med å lage en «while-løkke».
While-løkker kan vi benytte dersom det passer seg å kjøre en løkke inntil et kriterium er oppfylt. Oppgaven over passer til dette. Vi vil kjøre print-funksjonen helt til vi kommer til nr 10. Sjekk denne koden:
Vi starter med å sette en verdi til en variabel (jeg kaller den bare n). Deretter så starter jeg en løkke som skal kjøre så lenge n er mindre enn 11. Deretter så kjøres en print-funksjon der jeg benytter meg av variabelen, og i linje 5 øker jeg verdien av n med 1. Deretter vil løkka fortsette, helt til n ikke er mindre enn 11. Vi oppnår altså det samme. Legg også merke til innrykket i linje 4 og 5. Dette forteller at disse linjene hører til løkka.
Prøv å lag et program som skriver ut trekanttall fra nr 10 til 20.
Vi kan også benytte oss av en annen type løkker i python; nemlig for-løkker. Disse er meget praktiske fordi de tar med seg en variabel inn i løkka (vi trenger ikke lage n først). Variabelen vil også endre verdi automatisk. Sjekk denne koden:
Her er det linje 1 som bør forklares. Jeg starter løkka med ordet ‘for’. Deretter definerer jeg bokstaven ‘n’ som variabelen som skal endres for hver gang løkka kjører. Verdiene som n skal ha er i dette tilfellet (en ‘range’) fra 1 til 11 (ikke til og med 11).
Dette betyr at første gang løkka kjører vil n være 1, neste gang vil n være 2 osv. Slik holder den på helt til n er 11, og da stopper den.
Prøv selv: Lag et program som skriver ut trekanttall fra 5 til 15.
La oss sjekke Fibonacci- tallene. Vi ønsker å skrive ut de 100 første. Klarer du det selv? Her kommer litt hjelp, men prøv gjerne selv:
Selv om python har mange funksjoner i utgangspunktet, så må mange funksjoner importeres før de kan benyttes. Vi skal se på noen av disse her.
Når vi skal importere en funksjon, så må vi også fortelle python hvilket bibliotek vi skal hente funksjonen fra. La oss se på noen eksempler.
Biblioteket «random»
Når man skriver kode, så vil man ofte få behov for forskjellige former for tilfeldighet. Her er noen eksempler:
randint()
Funksjonen randint(a,b) returnerer et tilfeldig heltall fra og med a til og med b.
choice()
choice() returnerer en tilfeldig verdi fra en liste med element. Praktisk dersom man trenger å trekke et tilfeldig kort fra en kortstokk f eks.
Man kan også importere hele biblioteket, men da må man referere til biblioteksnavnet når man bruker funksjonen. Slik:
Hvis jeg her hadde skrevet «from random import randint, choice» i linje 1, så hadde jeg ikke trengt å skrive «random.choice» i programmet; da hadde det holdt med å bare skrive «choice».
random()
Dersom man har behov for en tilfeldig verdi mellom 0 og 1, så kan man benytte random(). Her ser du noen måter å bruke denne funksjonen
shuffle()
Dersom man trenger å legge elementene i en tilfeldig rekkefølge, så har random en funksjon som heter shuffle
Test denne koden, så ser du hvordan shuffle() fungerer
Biblioteket «time»
time()
time() returnerer antall sekunder siden 1/1-1970 (tror jeg), men den er langt mer praktisk enn hva man skulle tro. Den er veldig praktisk dersom man ønsker å ta tiden på ting. Denne koden sjekker hvor langt datamaskinen din klarer å telle i løpet av 5 sekunder. Min gamle laptop telte nettopp til ca 20 millioner:
sleep()
Noen ganger er det praktisk å la programmet sove et par sekunder, sånn som her:
Biblioteket «math»
pi
pi returnerer….vel….pi, da kan du si. Vi kan benytte oss av den på denne måten:
sqrt()
Det kan være praktisk å bruke kvadratrot i beregninger. Som mattefolk vet, så er jo kvadratrot det samme som å opphøye en verdi i 0,5. Det betyr:
Prøv koden, og forklar hva som skjer Modulen, eller biblioteket, «math», inneholder mange funksjoner som kan være nyttige, og dersom du vil utforske noen, så følg denne linken:
https://www.w3schools.com/python/module_math.asp
Andre moduler å utforske
Ønsker du å regne med brøk i python, så bør du sjekke biblioteket fractions.
Lag diagrammer rett fra verdier du lager i python.
Statistikk-funksjoner rett inn i python….og rett inn i kompetansemålene fra fagfornyelsen