Python for lærere – Egentrening

Fire konsepter

2 Funksjoner

2.1 De mest brukte

La meg begynne med å skremme deg litt; det finnes mange tusen funksjoner i python.
Så, berolige litt; en lærer i grunnskolen bør kunne bruke ca 15 av disse.
Så, enda roligere; du kan allerede en av disse. 

Funksjoner i python skrives på samme måte som funksjoner i regneark. Du kjenner sikkert til =SUMMER(B2:B8), som vi bruker i Excel. I python så er også syntax’en at vi skriver et funksjonsnavn etterfulgt av en parentes. Dersom funksjonen trenger informasjon, så legges dette i parentesen.

Du kan allerede bruke en funksjon, nemlig print(). Denne funksjonen fungerer helt fint med en tom parentes (skriv ‘ingenting’), men gir litt mer mening dersom vi putter inn informasjon som skal skrives.

La oss sjekke hvordan vi bruker noen andre funksjoner. Vi begynner med round():

round()

round() benyttes til å redusere antall desimaler i en float. Derfor er det meningsløst å kjøre funksjonen uten å “gi” den en float. Hvis du bare skriver float() på en linje, så vil du få en feilmelding, fordi funksjonen krever et argument (det som står i parentesen). 

round() returnerer tallet med det antall desimaler du angir. Du trenger ikke angi antall desimaler, men da vil funksjonen automatisk returnere 0 desimaler. Sjekk koden under  

				pi = 3.1415926535
print(pi)
print(round(pi))
print(round(pi, 2))
print(pi)
			

I denne koden lager jeg en variabel jeg kaller pi, og tilordner den en verdi bestående av et kjent desimaltall. Funksjonen round(pi) returnerer en verdi, og siden den ligger i en print-funksjon, så blir dette skrevet til skjerm.

Legg merke til at vi ikke endrer verdien på variabelen pi når vi bruker funksjonen på denne måten. Vi skriver bare ut pi med forskjellige avrundinger. Hvis vi vil endre verdien på variabelen, kan vi skrive:
pi = round(pi, 2)

Da kan vi to funksjoner. La oss gå videre med tilfeldige tall!

randint()

randint() ligger ikke i pythons standardbibliotek, og må derfor importeres. Funksjonen krever 2 argumenter, og fungerer ikke med noe annet. Begge argumentene må være integers. Funksjonen returnerer et tilfeldig heltall mellom argument 1 og argument 2.

				from random import randint

terning = randint(1, 6)
print(terning)
			

For å lage et tilfeldig heltall (random integer), så bruker vi funksjonen randint(). Denne funksjonen ligger ikke i standard-biblioteket i python. Derfor må den importeres fra et bibliotek som heter random. Derfor ser linje 1 ut slik den gjør. Hvis vi først har importert funksjonen, så kan vi bruke den så mange ganger vi vil i koden. (Selv om du skal programmere et yatzi-spill, så trenger du bare skrive import en gang 🙂 )

randint() fungerer kun dersom den får 2 verdier i parentesen; den laveste verdien og den høyeste verdien som kan returneres. Funksjonen velger et tilfeldig tall mellom disse. I Excel ser funksjonen slik ut: =TILFELDIGMELLOM(1; 6)

Dersom du vil simulere et kast med 2 terninger, og utforske produktet av disse kan det se slik ut:

				from random import randint

terning_1 = randint(1, 6)
terning_2 = randint(1, 6)
produkt = terning_1 * terning_2
print("Produkt", produkt)
			

Det var tre funksjoner, det! Dette går jo unna…

Husker du på å teste ut litt i ditt eget Code-vindu?

input()

input() er en funksjon som stopper kjøring av kode, og lar brukeren skrive noe i terminalen, og som går videre etter at brukeren har trykket ‘Enter’.

Funksjonen tar imot ett argument, en string, men krever det ikke. Funksjonen returnerer det brukeren skrev inn, som en string.

La oss teste:

				svar = input("Hvor gammel er du? ")
print("Ditt svar:", svar)
			

Legg merke til at koden stopper opp på linje 1, fordi koden krever at brukeren taster inn et svar i terminalen. Det brukeren taster inn blir lagret i variabelen ‘svar’, og vi kan benytte oss av dette videre i koden.

Husk at den lagrer det som brukeren skriver som en string, selv om brukeren skriver inn et tall. Det kan vi se her:

				svar = input("Hvor gammel er du? ")
print("Ditt svar ganger 10:", svar * 10)
			

…men hva gjør vi dersom vi vil samle inn et tall fra brukeren? Vel, da kommer vi til neste funksjon –>

int() / float() / str()

Vi kan gjøre om datatypen til en variabel med funksjonene int(), float() og str(). Disse funksjonene tar imot ett argument (verdi i parentesen), og returnerer argumentet som en ny datatype.

La oss teste dette på den forrige koden:

				svar = input("Hvor gammel er du? ")
svar = int(svar)
print("Ditt svar ganger 10:", svar * 10)
			

I denne koden har vi lagt til en linje som gjør om datatypen til ‘svar’ fra string til integer, og nå kommer kalkulasjonen til å oppføre seg annerledes. Koden kan forenkles litt, for vi trenger ikke å skrive linje 1 og 2 hver for seg:

				svar = int(input("Hvor gammel er du? "))
print("Ditt svar ganger 10:", svar * 10)
			

Her pakker vi inn hele input()-funksjonen inn i en int()-funksjon.

float() og str() fungerer på samme måte, men returnerer verdien som desimaltall og tekst i stedet for heltall

Det var 6 funksjoner til, det, så nå har vi gått gjennom 7 funksjoner.

Ingen regner med at man skal gå rundt å huske alle funksjonene man trenger å bruke i python. Har du glemt hvordan du bruker en funksjon, så bruk nettet. Det bugner over av gode hjelpesider. I tillegg anbefaler jeg deg å lage din egen cheatsheet. Et ark med oversikt over alle nødvendige funksjoner, alle regneoperatører, hvordan man skriver løkker og vilkår osv.

Nok babbel…la oss se på noen flere funksjoner

Forrige – 1.4 List

Neste – 2.2 Andre nyttige funksjoner

DigitAbel – for dypere læring