Variabler og uttrykk
- Variabler
- Tilordning
- Uttrykk og setninger
- Variabler refererer til verdier, ikke til uttrykk
- Gode variabelnavn
Variabler
En variabel er en referanse til en verdi.
# Symbolet '=' betyr her at vi tilordner verdien 5 til variabelen x
x = 5
print(x) # 5
print(2 * x) # 10
print(x) # fremdeles 5
Til forskjell fra matematikk, kan en variabel i Python endre verdi.
y = 10 # Variabelen y refererer nå til verdien 10
print(y) # 10
y = True # Variabelen y refererer nå til verdien True
y = "Hei" # Variabelen y refererer nå til verdien "Hei"
y = 11 # Variabelen y refererer nå til verdien 11
y = y + 1 # Variabelen y refererer nå til verdien 12
print(y) # 12
print(y) # fremdeles 12
Legg merke til at uttrykket
y = y + 1
er en fullstending meningsfull ting å skrive i programmering, mens det ville vært en selvmotsigelse å skrive det samme i matematikk. I programmering skal utsagnet tolkes slik: «la y fra nå av referere til en verdi som er én høyere enn hva den refererte til tidligere».
Vi bestemmer selv hva variablene skal hete, så lenge de begynner med en bokstav og ikke inneholder spesielle tegn (bortsett fra _
).
antall_studenter = 800
antall_gruppeledere = 42
kurskode = "INF100"
99problemer = True # Krasjer, variabler kan ikke begynne med tall
Tilordning
En variabel tilordnes verdi ved bruk av tilordningsoperasjonen =
. Det er også mulig å kombinere tilordningsoperasjonen med operasjonssymboler, slik som f. eks. +=
og -=
.
x = 5
x += 2 # det samme som x = x + 2
print(x) # 7
y = 5
y + 2 # ingen tilordnings-operasjon her
print(y) # fremdeles 5
Tilordningsoperatøren kan kombineres med alle symbol-operasjonene.
x = 42
x += 2 # det samme som x = x + 2
x -= 3 - 1 # det samme som x = x - (3 - 1)
x //= 10 # det samme som x = x // 10
x **= 5 // 2 # det samme som x = x ** (5 // 2)
x *= 2 + 3 # det samme som x = x * (2 + 3)
x %= 3 # det samme som x = x % 3
x /= 3 # det samme som x = x / 3
Når man tilordner en verdi, må venstre side av tilordningsoperatøren være variabelnavn.
x = 5 # OK
5 = x # Feil (venstre side kan ikke være en verdi)
x + 2 = 7 # Feil (venstre side er kan ikke være et uttrykk)
Det er mulig å tilordne flere variabler verdi på samme linje.
x = y = z = 5 # alle tre variablene x, y og z refererer nå til verdien 5
print(x, y, z) # 5 5 5
a, b = 2, 3 # a refererer nå til verdien 2, b refererer nå til verdien 3
print(a, b) # 2 3
Ikke pensum, men kjekt å vite: fra og med python 3.8 er det også mulig å tilordne en variabel verdi i et uttrykk med bruk av :=
(«hvalross»-operatøren).
x = 37 + (y := 3 + 2)
print(x, y) # 42 5
Uttrykk og setninger
Et uttrykk består av én eller flere verdier, variabler, operasjoner og funksjoner som alltid vil evaluere til en enkelt verdi. Her er noen eksempler på uttrykk (vi antar her at x
og y
er variabler som allerede er definert/er tilordnet en verdi).
42
"Hei verden"
(alle enkeltstående verdier er uttrykk)x
y
(alle enkeltstående variabler er også uttrykk)2 + 2
(uttrykk kan inneholde operasjoner)True or False
2 < y and x > 0
2 + abs(x)
min(max(0, x), 100)
x**(y - 1) + 2 > min(10, x) or y == 0
En setning er ett steg (ofte én linje) i et python -program, og representerer først og fremst en handling og ikke en verdi. For eksempel tilordningen av en verdi til en variabel.
x = 2 + 4
er en setning, mens2 + 4
er et uttrykk.print("Hallo")
er en setning, mens"Hallo"
er et uttrykk.
Variabler referer til verdier, ikke til uttrykk
Det som står på høyresiden av tilordningsoperatøren når vi tilordner verdi til en variabel er et uttrykk. Variabelen vil være en referanse til den ferdig evaluerte verdien, og vil ikke huske hvordan uttrykket så ut.
x = 5
y = x + 2
print(x) # 5
print(y) # 7
x += 10
print(x) # 15
print(y) # fremdeles 7
Gode variabelnavn
Følg disse prinsippene når du velger variabelnavn:
- Variabelnavnet skal være selvforklarende og beskrive sin egen rolle.
|
|
- Benytt kun små bokstaver. Selv om det teknisk sett er mulig å bruke store bokstaver, unngår vi det. Store bokstaver holder vi unna og bruker bare til spesielle formål, f. eks. konstanter (se under).
|
|
- Benytt
_
for å representere mellomrom, såkaltsnake_case
. Merk at du noen steder vil selowerCamelCase
som er ansett for å være god stil i en del andre programmeringsspråk. Vi godtar begge deler, men vær konsekvent.
|
|
Noen ganger oppretter vi en variabel som får en fast verdi når programmet starter, og som deretter aldri skal endre verdi. Dette er en såkalt konstant. Det er god stil å la konstanter være skrevet i UPPER_CASE
.
|
|
Du kan også se støte på
UpperCamelCase
noen steder. Det er god stil å benytte denne formen når man skal navngi såkalte «klasser»; men dette er et begrepet som er utenfor pensum i INF100, og du bør derfor ikke benytte denne formen når du navngir noe i dette kurset.
-
Ikke benytt et innebygd nøkkelord eller funksjonsnavn fra Python som variabelnavn.
- Nøkkelord med spesielle betydninger i Python 3 er:
False
None
True
and
as
assert
break
class
continue
def
del
elif
else
except
finally
for
from
global
if
import
in
is
lambda
nonlocal
not
or
pass
raise
return
try
while
with
yield
. - Innebygde funksjoner i Python 3 er f. eks:
abs
bool
float
input
int
len
max
min
print
sum
str
type
. For uttømmende liste, se https://docs.python.org/3/library/functions.html.
- Nøkkelord med spesielle betydninger i Python 3 er: