Logga in
| 7 sidor teori |
| 12 Uppgifter - Nivå 1 - 3 |
| Varje lektion är menad motsvara 1-2 lektioner i klassrummet. |
Inom programmering använder man variabler hela tiden. Dessa fungerar dock lite annorlunda jämfört med variabler inom matematiken, där de representerar värden man inte känner till eller värden som är godtyckliga. På den här sidan kommer du att lära dig om dessa skillnader och hur variabler kan användas inom programmering.
x = 13
y = x + 7
print(x, y)
x = 23
print(x, y)
y
?Inom programmering används variabler för att lagra olika sorters värden. Ofta är det fråga om heltal eller decimaltal, men det kan t.ex. också vara text. Man skapar en variabel genom att välja ett namn och skriva det följt av ett likhetstecken och sedan det man vill lagra i variabeln. Man kan t.ex. skriva
x = 10
för att lagra värdet 10 i variabeln x
. Man kan se det som att programmet skapar en låda märkt x
som det sedan lägger värdet 10 i.
Variabelnamn kan bestå av bokstäver, siffror och understreck (_
) men de får inte börja med en siffra. I de flesta programmeringsmiljöer går det att använda å, ä och ö i variabelnamn men man brukar undvika att göra det eftersom det inte är garanterat att det fungerar.
en_variabel = 33.012
print(en_variabel)
variabel_2 = 74
print(variabel_2)
>
33.012
74
Till skillnad från variabler inom matematiken är innehållet i programmeringsvariabler varken obekant eller godtyckligt, utan programmet håller hela tiden reda på vad som finns lagrat i dem. Det är dock möjligt att innehållet skrivs över med något annat allt eftersom programmet stegar sig igenom koden.
x = 10
print(x)
x = 20
print(x)
>
10
20
När man lagrar ett värde i en variabel säger man att variabeln tilldelas ett värde. Variabelnamnet skrivs alltid innan likhetstecknet och det som kommer efter är vad som sparas i variabeln. Om det är ett uttryck kommer det beräknas och sedan lagras, så om man skriver
x = 3*7 + 8
kommer programmet att räkna ut 3⋅7+8=29 och lagra värdet 29 i variabeln x
. Det som står till höger om likhetstecknet kan även innehålla andra variabler, t.ex.
y = x + 6
.Om man redan har sparat värdet 29 i x
kommer detta att sättas in i uttrycket och programmet gör beräkningen 29+6=35 för att sedan spara 35 i variabeln y
. Det går till och med att använda den variabel som får tilldelningen i uttrycket till höger om likhetstecknet.
y = y + 1
.I matematiken skulle det här vara en ekvation, men i ett program tolkas det på ett annat sätt. Här läser programmet först av vad som finns lagrat i y
och sätter in det i högerledet, vilket ger uträkningen 35+1=36. Programmet skriver sedan över y
med detta nya värde.
x = 3*7 + 8
print(x)
y = x + 6
print(y)
y = y + 1
print(y)
>
29
35
36
Vad kommer att finnas i variablerna a
och b
efter att man har kört följande kod?
a = 25
b = 4*a
a = 4*b
b = b - 10
Vi börjar på rad 1, där vi ser att variabeln a
tilldelas värdet 25. Man kan tänka sig variabeln som en låda, och nu ligger talet 25 i lådan.
På rad 2 skapas variabeln b
och tilldelas resultatet av beräkningen till höger om likhetstecknet, alltså 4*a
. Just nu ligger värdet 25 i a
, så beräkningen blir 4⋅25=100. Nu har alltså en ny låda skapats med talet 100 i.
På rad 3 skapas ingen ny variabel, istället ändras värdet på a
. Till höger om likhetstecknet står 4*b
, och med värdet 100 i b
blir beräkningen 4⋅100=400. Vi ska alltså skriva över innehållet i a
med 400.
I matematik är b=b−10 en motsägelse, men i Python innebär det att värdet b-10
ska lagras i variabeln b
. Just nu ligger 100 i b
, så beräkningen blir 100−10=90. Variabeln ska alltså tilldelas värdet 90, vilket skriver över det gamla.
Detta är alltså vad som finns lagrat i variablerna efter att koden har körts.
En datatyp är en viss sorts information, t.ex. heltal eller strängar, som ett programmeringsspråk handskas med. Dessa kan inte kombineras hur som helst − man kan t.ex. inte addera ett tal och en text. Vissa operatorer, som t.ex. +
, fungerar olika beroende på vilken datatyp man använder dem på. Det är framför allt fem datatyper man bör känna till.
4
och -55
.-8.7
och 3.0
.'Jag är 17 år gammal.'
. Strängar skrivs inom apostrofer.True
respektive False
.[2, 4, 8, 16]
eller [5, 'text', 3.14]
. Listor skrivs inom hakparenteser.Listor är en datatyp i Python som kan innehålla flera värden eller variabler. Man skapar dem genom att sätta hakparenteser runt en följd av värden, separerade med komman.
x = [1, 2, 3, 4, 5]
print(x)
>
[1, 2, 3, 4, 5]
Värdena i listor måste inte ha samma datatyp utan man kan blanda hur man vill.
x = [1, 'två', 3.0, 4, 'fem']
print(x)
>
[1, 'två', 3.0, 4, 'fem']
För att komma åt ett visst element i en lista sätter man en hakparentes efter variabelnamnet och skriver numret för det element man vill ha. I Python har man valt att indexeringen ska börja på 0, inte 1, så om man exempelvis vill få tag i det tredje elementet skriver man x[2]
.
x = [1, 'två', 3.0, 4, 'fem']
print(x[2])
>
3.0
Om man vill lägga till ett värde i en lista som redan finns går det att göra med hjälp av kommandot append()
. Man använder det genom att skriva namnet på listan följt av en punkt och append()
, där man skriver in det värde man vill lägga till inom parentesen. Då hamnar värdet sist i listan.
x = [1, 2, 3, 4, 5]
x.append(10)
print(x)
>
[1, 2, 3, 4, 5, 10]
Ylva ska beräkna värdet av ett polynom för några x-värden. Hon börjar med x=3 och skriver ett program för beräkningen.
print(18*3**4 - 57*3**3 + 12*3**2 + 100*3 - 560)
>
-233
Hon vill nu göra samma sak för x-värdena 4, 5 och 6, vilket blir många småändringar i programmet. Hjälp Ylva göra sitt program lättare att anpassa till nya beräkningar med hjälp av variabler.
x
tilldelas ett värde. x = 3
print(18*x**4 - 57*x**3 + 12*x**2 + 100*x - 560)
>
-233
Programmet gör precis samma sak som tidigare, men den här versionen är lättare att återanvända. Nu behöver Ylva bara ändra till x=4
och köra programmet igen för att beräkna nästa värde, istället för att ändra 3
till 4
på fyra ställen. Det är dessutom mer lättläst!
x = 4
print(18*x**4 - 57*x**3 + 12*x**2 + 100*x - 560)
>
992
Inom programmering är en kommentar ett textstycke i koden som inte tolkas av programmet. Syftet kan vara att förklara vad koden gör eller att tillfälligt dölja en kodrad som man kanske vill använda senare. I Python skapas en kommentar med tecknet #
. Alla efterföljande tecken på samma rad som #
ignoreras av programmet.
#Programmet tar ett tal x och skriver ut talet y,
#som är 5 större. x = 2 # Här sätts startvärdet
y = x + 5 # Raden nedan är bortkommenterad och därför skrivs y inte över
# y = -2 print(y)
>
7
Skriv ett program som gör följande steg.
Vi börjar med att skapa vår variabel. Det spelar ingen roll vad vi kallar den, så vi kan t.ex. välja var
. För att ge den ett värde skriver vi namnet på variabeln följt av ett likhetstecken och det värde vi vill spara i variabel, vilket i det här fallet är 7.
var = 7
Vi skriver sedan ut variabeln med hjälp av print()
.
var = 7 print(var)
För att ändra värdet i variabeln gör man på precis samma sätt som tidigare. Vi vill tredubbla det värde vi redan har, så vi skriver 3 * var
efter likhetstecknet. Det är ingen fara att använda variabeln på båda sidor eftersom det som står till höger om likhetstecknet alltid räknas ut först. Då vet man att det är det gamla värdet på var
som används för att räkna ut det nya.
var = 7 print(var) var = 3 * var
Till sist ska vi skriva ut variabeln igen.
var = 7 print(var) var = 3 * var print(var)
Nu har vi hela programmet och kör man det får man följande resultat, vilket är precis det vi var ute efter.
> 7 21
Skriv ett program som gör följande saker.
min_variabel
och som innehåller värdet 8736.min_variabel
.min_variabel
till 111119.min_variabel
igen.min_variabel
.Vi går igenom de saker som programmet ska göra, steg för steg, och börjar med att skapa variabeln min_variabel
. Den ska ha värdet 8736, så vi gör en tilldelning genom att skriva ett likhetstecken efter vårt variabelnamn, följt av det värde vi vill ge variabeln.
min_variabel = 8736
>
Vi ska sedan skriva ut min_variabel
, vilket vi gör med kommandot print()
.
min_variabel = 8736 print(min_variabel)
> 8736
För att ändra värdet i min_variabel
gör vi en ny tilldelning på samma sätt som på första raden. Nu ska vi sätta värdet till 111119.
min_variabel = 8736 print(min_variabel) min_variabel = 111119
> 8736
Vi skriver ut det nya värdet som finns i min_variabel
med print()
på samma sätt som tidigare.
min_variabel = 8736 print(min_variabel) min_variabel = 111119 print(min_variabel)
> 8736 111119
Till sist ska vi skriva ut det tal som är 2738 större än min_variabel
. Det gör vi enklast genom skriva ut min_variabel + 2738
, som kommer att beräknas innan det visas.
min_variabel = 8736 print(min_variabel) min_variabel = 111119 print(min_variabel) print(min_variabel + 2738)
> 8736 111119 113857
Vilken datatyp har följande variabler?
a = 2.5
b = 'Grönland'
c = 2023
d = ['x', 'y', 'z']
En variabels datatyp anger vilken sorts information som finns sparad i den. I det här fallet är variabeln a
ett decimaltal, vilket innebär att den har datatypen flyttal.
Variabeln b
har datatypen sträng eftersom den innehåller text. I det här fallet är risken inte är så stor man misstar 'Grönland'
för ett decimaltal eller något sådant, men om man vill vara säker kan man alltid titta på apostroferna som står runt ordet. De betyder att det är en sträng.
Det finns ett heltal i c
, och det är också vad datatypen heter.
Variabeln d = ['x', 'y', 'z']
är en lista som innehåller ett antal strängar. Att det råkar finnas strängar i listan spelar dock ingen roll, bara att det är en lista, vilket är datatypen för d
.
I ett program har man skapat följande lista.
info = [2001, 176, 17, 'år', 'längd', 'ålder']
Vad får man om man skriver info[3]
?
Vad ska man skriva för att få 176
?
Vad finns i det femte elemtet?
Vilket element har index 5?
När man skriver hakparenteser efter namnet på en lista är det för att välja ut ett element i den. I det här fallet står det 3
mellan parenteserna, vilket innebär att det är elementet med index 3 som ska väljas ut. Eftersom indexeringen i listor börjar på 0 räknar vi första elementet som 0, andra elementet som 1 osv.
Elementet med index 3 är alltså 'år'
, vilket är det man får om man skriver info[3]
.
För att få ut 176
, alltså det andra elementet, skriver vi på samma sätt som i förra uppgiften: listans namn följt av elementets index inom hakparenteser. Index för andra elementet är 2 - 1 = 1, så det vi ska skriva är info[1]
.
Det femte elementet är helt enkelt det element som står på femte plats i listan, alltså 'längd'
.
För att hitta elementet med index 5 kan vi antingen räkna upp elementen från 0 tills vi kommer till 5 eller så kan vi räkna ut vilket element det är frågan om genom att addera 1 till indexet, vilket ger 5 + 1 = 6. I båda fall får man elementet 'ålder'
.
Skapa en lista som innehåller de 8 första primtalen. Använd sedan listan för att skriva ut det femte och sjunde primtalet.
Primtal är de heltal som är större än 1 och som enbart är delbara med 1 och sig själva. Vi börjar på 2 arbetar oss uppåt tills vi hittat 8 primtal.
2, 3, 5, 7, 11, 13, 17, 19
För att skapa en lista skriver man de element man vill ha i den inom hakparenteser och separerade med komman. Vi sparar den i en variabel som exempelvis kan få heta primtal
.
primtal = [2, 3, 5, 7, 11, 13, 17, 19]
För att sedan välja ut ett element i listan skriver vi namnet på den, alltså primtal
, följt av index för det element vi är ute efter. Eftersom första elementet har index 0 kommer de femte och sjunde primtalen ha index 4 respektive 6. Vi skriver ut dem med print()
.
primtal = [2, 3, 5, 7, 11, 13, 17, 19] print(primtal[4]) print(primtal[6])
Henke har skrivit ett program.
varde = 10000
arsranta = 1.012
varde = varde * arsranta
print(varde)
varde = varde * arsranta
print(varde)
varde = varde * arsranta
print(varde)
Beskriv vad koden gör och förklara varför Henke skulle kunna ha skrivit det.
Programmet börjar med att skapa två variabler: varde
och arsranta
.
varde = 10000 arsranta = 1.012
Man brukar undvika svenska tecken i variabelnamn, så förmodligen är de egentligen "värde" och "årsränta". Detta verkar även rimligt om man ser på de värden som tilldelats: 10 000 kan vara en summa pengar i kronor och 1.012 kan tolkas som en förändringsfaktor för en ökning med 1.2 %. På rad 3 får variabeln varde
ett nytt värde.
varde = varde * arsranta print(varde)
Detta nya värde beräknas genom att nuvarande värde i varde
, 10 000, multipliceras med det som finns i arsranta
, 1.012. Det sker alltså en överskrivning så att variabeln varde
istället har värdet
10 000*1.012=10 120.
På rad 4 används print()
för att skriva ut detta nya värde. Rad 5 och 6 är identiska med de två föregående. Detsamma gäller rad 7 och 8.
varde = varde * arsranta print(varde) varde = varde * arsranta print(varde)
Samma sak händer alltså två gånger till: varde
ökar med 1.2 % och skrivs ut. Kör man programmet får man följande resultat.
> 10120.0 10241.44 10364.33728
Det verkar alltså vara ett program som tar ett värde, t.ex. hur mycket pengar det finns på ett konto, och räknar ut hur det förändras under 3 år för en viss ränta samt skriver ut resultatet på skärmen.
Eftersom det finns upprepade rader i det här programmet kan man göra det lite enklare genom att använda en loop.
varde = 10000 arsranta = 1.012 for index in range(3): ##Upprepa det som står innanför loopen 3 gånger. Variabeln index används aldrig, men stegas upp från 0 till 2 för varje upprepning av loopen. varde *= arsranta ##Ett kortare sätt att skriva varde = varde * arsranta print(varde)
> 10120.0 10241.44 10364.33728