Er du helt grønn?

Hvor skal jeg skrive koden?

Python er et tekstbasert programmeringsspråk, og for å komme igang med å programmere, så har man 3 alternativer:

  • Programmere på nett: Det er flere tjenester på nettet som lar deg skrive og kjøre python-programmer, som f eks Trinket. Det er denne tjenesten som brukes på http://python.verket.me
  • Installere et program som både er en kode-editor, men som har innebygget en egen «python-motor». Dette er kanskje den beste måten å starte dersom du er fersk. Eksempel på et slikt program er Mu Editor. Den kan lastes ned fra http://codewith.mu/
  • Installere Python på din egen maskin, og kjøre den på egen maskin (lokalt). Når du har installert Python, så har du «motoren» som du trenger for å kjøre koden din. I tillegg lønner det seg å finne et program du liker å skrive koden din i. Her er det mange alternativer:
    • Personlig er jeg glad i VisualStudioCode fra Microsoft. Gratis program som finnes for windows, mac og linux, og som hjelper deg å kode tekstfiler i alle de største programmeringsspråkene.
    • Notepad++ er et annet strålende verktøy som fungerer uavhengig om du skal skrive python-kode eller andre kodespråk.

Jeg vil ha Python på maskinen min

Da kan du velge mellom å installere Thonny eller sette opp en full pakke. Thonny er det enkleste, og lastes ned herfra:

https://thonny.org/

Dersom du ønsker å installere full pakke, så finner du den nyeste utgaven av Python her:

https://www.python.org/downloads/

Last ned og kjør fila! Det skal være ganske greit.

Du BØR også laste ned en editor (et program du skriver koden i). Spør du meg (og det er jo det du gjør hvis du leser dette), så laster du ned Visual Studio Code:

https://code.visualstudio.com/Download

Last ned og kjør fila! Samme her, skal være greit.

Når alt er installert og ting fungerer som det skal, så er du klar til å lage ditt første program.

Jeg vil skrive kode på nett

Okei!!?!! Keep it simple! Da trenger du ikke gjøre med enn å gå inn på en tjeneste som lar deg gjøre dette. Prøv f eks å gå inn på:

http://python.verket.me/

Mitt første Python-program

Da er tiden inne til å lage ditt første Python-program, og vi skal se på en funksjon som vi kommer til å benytte mye; nemlig print(). Legg merke til at jeg har skrevet funksjonen med paranteser. Det er fordi alle funksjoner skrives med paranteser. Her ser du hvordan print-funksjonen fungerer:

print(‘Hello world!’)

Denne koden vil skrive Hello world! på skjermen. Legg merke til at teksten er satt inn i ‘slike tegn’. Vi kaller disse ‘enkle anførselstegn’ og «doble anførselstegn», og det spiller ingen rolle hva du ønsker å bruke; Python forstår begge deler helt fint.

Det du må huske på, er å skrive funksjoner med små bokstaver. Python skiller mellom P og p, Så dersom du skriver dette:

Print(‘Hello world!’)

…så kommer du til å få en feilmelding, der Python sier at den ikke kjenner noen funksjon som heter Print.

Det skal heller ikke være mellomrom mellom print og parantesen! Da lager vi programmet vår! Skriv inn koden:

print(‘Hello world!’)

Kjør programmet!

 

Pyton
				print("Hello world!")
			

La oss se hvordan vi kunne gjort dette med variabler

Variabler i Python

Akkurat som i matematikk, så kan vi benytte oss av variabler i programmering. I mattefaget, så pleier variablene å hete x, y, a, b osv. Det kan de også hete i programmering, men her kan vi også benytte oss av lengre variabelnavn.

Variabler som inneholder tekst

Pyton
				a = "Hello World!"
print(a)
			

Denne koden vil gjøre akkurat det samme som det første programmet ditt; nemlig skrive Hello world! til skjermen. Legg merke til at dersom vi ønsker å skrive ut innholdet i en variabel, så bruker vi ikke anførselstegn i kommandoen.

Som sagt, kan vi også benytte oss av litt lengre variabelnavn, slik at det blir litt mer forståelig hva variabelen inneholder:

melding = ‘Hello world!’
print(melding)

Allikevel er det noen ord vi ikke kan benytte som variabelnavn, men det holder stort sett å ikke benytte æ, ø og å.

Her ser du et eksempel på hvordan vi kan benytte oss av variabler:

laat = ‘Bråtebrann’
band = ‘Kvelertak’
print(‘Låta ‘, laat, ‘ av ‘, band, ‘er kul!’)

Legg merke til at funksjonen print kan ta imot flere argumenter, og vi skiller dem med komma. Vi ser her at den kan skrive ut tekst og variabler om hverandre.

Dersom man legger koden inn i en Python-editor, så får vi ofte også hjelp av fargekoder, på denne måten:

Pyton
				laat = "Bråtebrann!"
band = "Kvelertak"
print("Låta", laat, "av", band, "er kul")
			

Øvingsoppgave

Prøv å lage et lite program som har variablene fornavn, etternavn og alder, og som skriver ut f eks: «Jeg heter Gudleik Fjottnes og er 53 år gammel».

Variabler som inneholder tall

Vi så hvordan vi kunne sette opp variabler når de skal inneholde tekst, men variabler kan også inneholde tall. Da skal vi ikke bruke anførselstegn. Her ser vi hvordan:

tall1 = 8
tall2 = 3
print(tall1 + tall2)

Denne koden vil skrive ut tallet 11. Men hva ville skjedd dersom vi hadde benyttet anførselstegn? Prøv selv, og se hva som skjer.

Kommentarer i koden

Når man programmerer så lønner det seg å forklare hva koden gjør. Det gjør man med tegnet #. Dette tegnet tolker Python som «resten av denne linjen skal ikke leses av programmet».

Her ser vi det forrige programmet, men vi forklarer koden vår med kommentarer:

Skal man levere kode til andre, f eks til læreren, så MÅ man kommentere koden sin. Det er også lurt å skrive kommentarer selv om det ikke er andre som skal lese koden, rett og slett for å holde oversikt over hva man gjør hvor.

Jeg liker gjerne å starte hvert program med et par linjer med kommentarer som forklarer hva programmet gjør, hva det skal brukes til og/eller hvorfor jeg lager det.

Bruk av vilkår finner vi i alle typer programmeringsspråk, men de er utformet litt forskjellig (det vi kaller syntax). Et eksempel på vilkår i Python:

Den samme koden i Javascript ville sett slik ut:

Vilkåret er altså her om variabelen ‘alder’ er mindre enn 18. Hvis det er tilfelle, så settes verdien på 2 andre variabler. I Python så skrives if-tester alltid med et kolon, og deretter med innrykk på alle linjer under som hører til testen; altså alle linjer som skal kjøres dersom testen er sann.

Eksempler på vanlige tester:

TestForklaring
alder > 18Er alder større enn 18
alder == 18Er alder lik 18. Legg merke til at vi i en test må benytte to stk ‘=’. Det er fordi når vi bare benytter en, så setter vi verdien.
alder != 18Er alderen ulik 18

 

Legg merke til hvordan linje 4 er rykket inn. Den leses bare dersom testen i linje 3 er sann!

Vi kan også legge inn kode dersom testen IKKE er sann:

 

Det som står under ‘else:’ vil bare utføres dersom testen i linje 3 ikke er sann.

Ved å bruke operatorer som ‘and’ og ‘or’ så kan man sette sammen if-tester til å passe med de fleste formål.

Hva hvis man har mange muligheter? Si at man f eks vil vise riktig bilde basert på verdi av variabelen ‘terning’. Sjekk denne koden:

Her ser man hvordan man kan benytte ‘elif’ og ‘else’ i en if-test.

Hva med løkker i python? Bli med videre!

Løkker i python

Løkker er noe som brukes i programmering for å gjøre koden effektiv. La oss si at vi ønsker oss et program som skriver ut de 10 første rektangeltallene. Dette kan vi gjøre slik:

 
print(1*2)
print(2*3)
print(3*4)
print(4*5)
print(5*6)
print(6*7)
print(7*8)
print(8*9)
print(9*10)
print(10*11)

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 i python

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:

n = 1

while n < 11:
print(n * (n + 1))
n = n + 1

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.

For-løkker i python

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:

for n in range(1,11):
     print(n * (n + 1))

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.

Utfordring

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:

Importere nyttige funksjoner

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()

 
 
 
from random import randint
terning = randint(1,6)
print(terning)
 
 
 
 

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:

 
 
 
import random
farger = [‘Hjerter’,‘Ruter’,‘Kløver’,‘Spar’]
farge = random.choice(farger)
verdi = random.randint(1,13)
print(“Kort: “, farge, ” “, verdi)
 
 
 
 

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

 
from random import random
a = random() * 100 # returnerer verdi mellom 0 og 100
b = 1 + random() * 9 # returnerer verdi mellom 1 og 10
c = random() * 100 50 # returnerer verdi mellom -50 og 50
 

shuffle()

Dersom man trenger å legge elementene i en tilfeldig rekkefølge, så har random en funksjon som heter shuffle

 
 
from random import shuffle
list = [‘en’,‘to’,‘tre’,‘fire’,‘fem’]
shuffle(list)
print(list)
 
 
 
 

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:

from time import time
start_tid = time()
tid = 0
teller = 0
while tid < 5:
tid = time() start_tid
teller += 1
 
print(teller)
 
 
 
 

sleep()

Noen ganger er det praktisk å la programmet sove et par sekunder, sånn som her:

 
print(“Klar?”)
sleep(2)
print(“Ferdig!”)
sleep(2)
print(“GÅ!!!”)
 
 
 
 

Biblioteket «math»

pi

pi returnerer….vel….pi, da kan du si. Vi kan benytte oss av den på denne måten:

 
rad = float(input(“Hva er radien?”))
ar = pi * rad * rad
print(“Arealet av sirkelen er ca {:.2f}”.format(ar))
 
  

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:

 
verdi = sqrt(40) 40 ** 0.5
print(verdi)
 
 
 
 

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

fractions

Ønsker du å regne med brøk i python, så bør du sjekke biblioteket fractions.

matplotlib

Lag diagrammer rett fra verdier du lager i python.

statistics

Statistikk-funksjoner rett inn i python….og rett inn i kompetansemålene fra fagfornyelsen

DigitAbel – for dypere læring