Osa 1

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.

Loading...
:
Loading...

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

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

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

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

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:

Exempelutskrift

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

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:

Exempelutskrift

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:

Exempelutskrift

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

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

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:

Exempelutskrift

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:

Exempelutskrift

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:

Exempelutskrift

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}")
Exempelutskrift

Medelvärde: 1.6233333333333333

Du hittar ett repetitionsquiz för denna del här:

Loading...
:
Loading...

Log in to view the quiz

Du har nått slutet av den här delen! Fortsätt till nästa del:

Se dina poäng genom att klicka på cirkeln nere till höger av sidan.