Mer om variabler
Vänligen fyll i den här enkäten före du börjar med den här delen. Du får ett poäng efter att du har fyllt i enkäten.
Log in to view the quiz
Variabler har olika användningsområden inom programmering. Du kan använda variabler för att lagra vilken som helst typ av information som kan behövas senare medan ett program körs.
I Python skapas variabler på följande sätt:
variabelns_namn = ...
där ...
syftar till värdet som sparas i variabeln.
Till exempel när du använde input
för att läsa in en sträng från användaren, sparade du strängen i en variabel och använde variabeln senare i ditt program.
namn = input("Ange ditt namn: ")
print("Hejsan " + namn)
Ange ditt namn: Konstantin Hejsan Konstantin
När man ger en variabel ett värde säger man att man tilldelar den ett värde. I koden ovan tilldelar vi alltså variabeln namn
det värde som användaren matar in som svar på frågan "Ange ditt namn:".
Värdet som lagras i variabeln kan också definieras med hjälp av andra variabler:
fornamn = "Gabrielle"
efternamn = "Gullholm"
namn = fornamn + " " + efternamn
print(namn)
Gabrielle Gullholm
Värdena som lagras i variablerna ovan kommer inte från användaren. De ändrar inte utan förblir de samma varje gång programmet körs. Det här kallas att hårdkoda data i programmet.
Att byta värde på en variabel
Som namnet möjligtvis avslöjar, kan värdet på en variabel variera, alltså ändra. I den förra delen observerade vi att ett nytt värde ersätter det tidigare värdet.
Medan vi kör följande program, kommer variabeln ord
att ha tre olika värden:
ord = input("Ge ett ord: ")
print(ord)
ord = input("Ge ett annat ord: ")
print(ord)
ord = "tredje"
print(ord)
Ge ett ord: första första Ge ett annat ord: andra andra tredje
Värdet som är lagrat i variabeln ändrar varje gång vi tilldelar variabeln ett nytt värde.
Det nya värdet på en variabel kan basera sig på det föregående värdet. I följande exempel tilldelas variabeln ord
först ett värde på basis av indata från användaren. Därefter tilldelas variabeln ett nytt värde – som består av det gamla värdet följt av tre utropstecken.
ord = input("Ge ett ord: ")
print(ord)
ord = ord + "!!!"
print(ord)
Ge ett ord: test test test!!!
Heltal
Hittills har vi enbart lagrat strängar i variabler, men det finns också flera andra datatyper som vi kommer att vilja lagra och använda senare. Vi börjar med att titta på heltal. Heltal är tal utan decimal- eller bråkdel. Exempelvis -15, 0 och 1.
Följande program skapar variabeln alder
. Eftersom vi tilldelar variabeln värdet 24, kommer variabeln att vara av typen heltal:
alder = 24
print(alder)
Utskriften ser helt enkelt ut så här:
24
Märk att citattecknen fattas. Om vi skulle lägga till citattecken runt siffran skulle det inte längre vara ett heltal, utan en sträng. En sträng kan innehålla siffror, men strängar behandlas på ett annat sätt.
Varför ska variabler då ha en typ när programmets utskrift ändå ser lika ut i vilket fall som helst?
siffra1 = 100
siffra2 = "100"
print(siffra1)
print(siffra2)
100 100
Variabelns datatyp spelar en viktig roll, eftersom olika operationer påverkar olika typer av variabler på olika sätt. Ta en titt på följande exempel:
siffra1 = 100
siffra2 = "100"
print(siffra1 + siffra1)
print(siffra2 + siffra2)
Koden skriver ut följande:
200 100100
För heltal betyder operatorn +
addition, medan den för strängar innebär kombination av två strängar.
Alla operatorer är inte tillgängliga för alla typer av variabler. Vi kan dividera tal med operatorn /, men det går inte med strängar. Att försöka göra det ger upphov till ett felmeddelande.
Att kombinera värden i samband med utskrift
Det följande kommer inte att fungera eftersom "Resultatet är "
och resultat
är av olika typer:
resultat = 10 * 25
# nästa rad orsakar ett fel
print("Resultatet är: " + resultat)
Programmet skriver inte ut någonting – istället får vi ett fel:
TypeError: unsupported operand type(s) for +: 'str' and 'int'
I felet berättar Python att det inte går att kombinera två värden av olika typ så här enkelt. I det här exemplet är "Resultatet är "
av typen sträng medan värdet i variabeln resultat
är ett heltal.
Om vi vill skriva ut en sträng och ett heltal i en och samma instruktion kan vi konvertera heltalet till en sträng med str
-funktionen. Därefter kan de två strängarna kombineras normalt. Till exempel så här:
resultat = 10 * 25
print("Resultatet är: " + str(resultat))
Resultatet är: 250
print
har också inbyggd funktionalitet för att skriva ut en kombination av olika typer av värden. Det enklaste sättet är att lägga in ett komma mellan värdena. Alla värden kommer då att skrivas ut – oavsett typ:
resultat = 10 * 25
print("Resultatet är", resultat)
Resultatet är: 250
Observera att det i detta fall automatiskt läggs till ett mellanslag mellan värdena.
Utskrift med f-strängar
Hur kan vi gå till väga om vi önskar mera flexibilitet och kontroll över det som skrivs ut? Ett sätt är att använda f-strängar. Syntaxen kan till att börja med verka en aning konstig, men f-strängar är ändå ofta det enklaste sättet att påverka formatet på en text.
Med f-strängar skulle det föregående exemplet se ut så här:
resultat = 10 * 25
print(f"Resultatet är: {resultat}")
Låt oss se hur ovanstående exempel fungerar, del för del. Före strängen som vi vill skriva ut finns bokstaven f. Den här bokstaven berättar för Python att följande sträng ska tolkas som en f-sträng. Inom strängen finns variabelnamnet resultat
innanför klamrar (måsvingar). Detta anger att variabelns värde kommer att bli en del av strängen då den skrivs ut. Utskriften ser helt likadan ut som i de föregående exemplen:
Resultatet är: 250
En och samma f-sträng kan innehålla flera variabler. Den här koden…
namn = "Joline"
alder = 24
stad = "Kyrkslätt"
print(f"Hej {namn}, du är {alder} år. Du bor i {stad}.")
…skriver ut det följande:
Hej Joline, du är 24 år. Du bor i Kyrkslätt.
Det är svårt att åstadkomma en likadan utskrift med hjälp av kommanotationen i print
. Exempelvis skriver programmet…
namn = "Joline"
alder = 24
stad = "Kyrkslätt"
print("Hej", namn, ", du är", alder, " år. Du bor i", stad, ".")
… ut följande:
Hej Joline , du är 24 år. Du bor i Kyrkslätt .
Observera mellanslagen som automatiskt har lagts till mellan varje kommaseparerad del i instruktionen. Det är tekniskt sett möjligt att förhindra print
-instruktionen från att lägga till mellanslag, men det är inte värt det eftersom vi kan använda oss av f-strängar.
Kommanotationen kan vara till nytta ibland, men ofta orsakar den mer problem än vad den löser. f-strängar är ofta en pålitligare metod. I modul fyra kommer du att lära dig om andra egenskaper hos f-strängar som för att vi kan påverka den utskrivna textens format på flera sätt.
Flyttal
Flyttal är en term som du ofta kommer att stöta på i programmering. Det hänvisar till tal med decimaltecken. Flyttal kan användas på väldigt liknande sätt som heltal.
Följande program beräknar medeltalet av tre flyttal:
tal1 = 2.5
tal2 = -1.25
tal3 = 3.62
medeltal = (tal1 + tal2 + tal3) / 3
print(f"Medelvärde: {medeltal}")
Medelvärde: 1.6233333333333333
Du hittar ett repetitionsquiz för denna del här:
Log in to view the quiz
Se dina poäng genom att klicka på cirkeln nere till höger av sidan.