Start | enkla exempel
 

Enkla exempel



print

Vill vi bara skriva ut något, så gör vi detta med print. Klicka på koden och klicka kör. Du kan också klicka kör i kodens högra hörn.
print("hello world")

variabel

Vad är en variabel? En variabel är en låda som kan innehålla ett värde. En variabel kan t.ex. innehålla en siffra. Vi kan enkelt printa ut variabelns innehåll med print.

width
9
width = 9 print(width)
En variabel kan innehålla en sträng. Vi kan enkelt printa ut variabelns innehåll med print här också.

text
telekommunikationsradioapparat

text = "telekommunikationsradioapparat" print(text)
Vi kan ändra vår variabel när vi vill. Varje gång vi ändrar försvinner förstås värdet som var innan.

text
Ada

text = "telekommunikationsradioapparat" text = "Kal" text = "Ada" print(text)
En smart grej är att du kan lista variabler och lista tilldelningen.
width, height = 9, 90 print(width) print(height) print(width * height)

variabler & litteraler

När vi knappar in värden för våra variabler, så är detta litteraler. Siffror eller strängar vi knappar in är litteraler. Litteraler betyder bokstäver.

Tänk på engelska uttrycket, literally. På svenska hade vi sagt bokstavligen.

   "the driver took it literally when asked to go straight over the roundabout"

tal


Behöver vi en variabel för ett tal, så hittar vi på ett namn. T.ex. x.

x = 10 print(x)
Reglerna för variabler i python är samma som i andra språk, dvs variabler måste inledas med bokstaz a-z eller A-Z eller _. Därefter är det tillåtet även använda siffror.
okej123_variabel = 10 print(okej123_variabel)
Det här att döpa variabler är ingen enkel grej. Såklart kan du kalla vad som helst för vad som helst, sålänge du följer reglerna att en variabel skall börja på en bokstav. Men samtidigt kan det hjälpa dig själv och andra förstå programmet om variablerna har vettiga namn.
p3eEqnBg678fd = 99 print(p3eEqnBg678fd)

aritmetik


Variabler du skapar, kan du förstås räkna med.
x = 5 y = 10 z = x + y print(z)

int


Heltal, dvs 1 eller 67, heter på engelska integer eller i kod-sammanhang kort och gott int.
en_int = 800 annan_int = 100 int_plus_int = en_int + annan_int print(int_plus_int)

float


Som du lärt dig i matematiken så existerar också flyt-tal eller på engelska float. I kodsammanhang säger man också float.
en_float = 3.5 annan_float = 10.5 float_plus_float = en_float + annan_float print(float_plus_float)
Vad händer om vi adderar en float med en int ?
en_float = 3.5 en_int = 10 float_plus_int = en_float + en_int print(float_plus_int)
Det fungerar, det blir en float. Vad händer om vi dividerar en float med en int ?
en_float = 3.5 en_int = 5 x = en_float / en_int print(x)
Det fungerar också. Int och float mixat blir float. Verkar vettigt, annars skulle det inte fungera. Svaret skulle bli fel. Appropå fel, vad händer om vi dividerar 2 stycken int med varandra?
en_int = 800 annan_int = 100 int_genom_int = en_int / annan_int print(int_genom_int)
Vi känner igen på svaret, där det står 8.0 (åtta komma noll), att svaret ges som en float. Dvs python har ändrat typ. Det kallas typkonvertering. Vi går strax in på detta.

förbättra utskriften


För att göra utskrifter tydligare kan vi också skicka med text i vår print -sats.
radien = 5 pi = 3 omkretsen = 2 * pi * radien print("omkrets=",omkretsen)
Vi kommer längre fram se att det finns många sätt att komponera utskrifter med print så att resultatet blir precis vad vi önskar.

strängar

En sträng är en text - till skillnad från siffror och tal - och behöver du en text, så skapar du en text omsluten med citat -tecken.
s = "Hello" print(s)

input()


Ibland behöver du input från användaren. Du vill att användaren skall knappa in något, som du sedan använder i ditt program.
a = input() print(a)
Funktionen input() lämnar alltså ifrån sig en sträng, Vi låter variabeln a fånga upp vad användare har knappat in genom input() genom att skriva a = input().

input("meddelande")


Vi kan ge användaren lite bättre information om vad vi frågar efter.
a = input("Mata in någon typ av text och se vad som händer!") print(a)

bygga strängar


Vi kan bygga ihop en ny sträng av andra strängar, som vi anser oss behöva det.
a = input("Skriv något och se hur det hamnar inom parentes") b = "(" + a + ")" print(b)
Eller såhär ...
s = "Hello" t = "Tjoho" u = s + " " + t print(u)
Multiplikation av strängar är inte som multiplikation inom matematiken. Hur skulle det se ut? Kalle * 10 ? Tja, varför inte prova?
s = "Hello " u = s*3 print(u)

typkonvertering - input() av siffror

Vi pratade ovan om å ena sidan strängar (text) och å andra sidan tal och aritmetik (räkna).

Uppenbart kan du inte multiplicera text-strängen "spagetti" med siffran 7. Eller rättare sagt, du kan. Då får du 7 stycken strängar spagetti efter varandra (dubbelkolla själv). Men låt säga att textsträngen är "5" och du har siffran 4. Det borde gå att multiplicera dessa två. Man ser ju tydligt att 5*4 = 20. Men för en dator så är "5" en textsträng.
x = "5" y = 4 print(x*y)
Inte det resultat vi önskar. Om vi som programmerare råkar veta att en textsträng faktiskt representerar en siffra och denna textsträng skall multipliceras med något, då kan vi typkonvertera denna sträng till en float eller en int. Dvs, vi säger åt datorn "hörru, kan du behandla denna textsträng som en siffra i fortsättningen?" Vi gör detta såhär.
x = "5" y = 4 x = int(x) print(x*y)

input() lämnar ifrån sig en sträng


Vi har denna situation med input-funktionen. Funktionen input lämnar enbart ifrån sig strängar (text). Allt användaren knappar in hamnar i en sträng som returneras från input. Även om vi ber användaren om en siffra och användaren knappar in en siffra, så hamnar denna siffra i en sträng.

Om det som knappas in via input() skall tolkas/användas som en siffra så behöver du typkonvertera strängen. Typkonvertering, det är när du tvingar koden att behandla en sträng av text som en siffra. Du måste förstås känna till att strängen råkar representera en siffra, dvs att det är teoretiskt möjligt konvertera strängen till en siffra. Python kan inte konvertera "kalle" till någon siffra, men python kan konvertera texten "340" till siffran 340.

x = float("340") fungerar, x konverteras till float 340.0

x = int("340") fungerar, x konverteras till int (heltal) på 340

men inte x = float("kalle"), det fungerar inte därför att "kalle" är inget tal.

Kör koden nedan. Prova att mata en en sträng respektive mata in ett tal.
a = input("Skriv ett tal") talet = float(a) print(talet)
Om vi vet höjden och bredden i en rektangel, så kan vi räkna ut arean.
x = input("Hur bred är rektangeln?") y = input("Hur hög är rektangeln?") arean = float(x) * float(y) print(arean)

strängar av text & tal

Vi lärde oss ovan att om man har en siffra i en sträng, så kan man konvertera denna sträng till en int eller float och sedan ägna sig åt matematik, ifall det är nödvändigt.

Det är samma sak åt andra hållet. Om du har 3 strängar så kan du enkelt bygga ihop dessa strängar till en ny sträng.
str1 = "Min dator " str2 = "har ett " str3 = "grafikkort." text = str1+str2+str3 print(text)
När man bygger ihop strängar av variabler, så är det viktigt att alla ingående variabler är av typen sträng.

Det betyder att om du vill stoppa in siffror i din sträng, så måste du typkonvertera siffran till sträng. Sträng i pythonsammanhang kallas str.
pi = 3.14 annat_tal = 42 s = "Pi är "+str(pi)+" och annat_tal är "+str(annat_tal) print(s)

XY

Om du har en summa på banken och räntan är 5%, hur mycket pengar har du om 10 år ? Du räknar ut detta genom att använda förändringsfaktorn 1.05 (dvs 5% tillväxt per år) och sedan räknar du ränta på ränta.

efter 10 år = summa * 1.0510

Hur kodar vi rent allmänt XY i python? Det finns flera sätt. Du kan t.ex. koda det x**y, dvs med dubbla *.
summa = float(input("Hur stor summa har du på banken?")) efter_10_ar = summa*1.05**10 print(efter_10_ar)

round()

Vi får svaret med en faslig massa decimaler. I just detta fall så kanske vi nöjer oss att avrunda det till heltal. Hur gör vi det? Vi kan använda round() i python.
x = round(3.14)
summa = float(input("Hur stor summa har du på banken?")) efter_10_ar = round(summa*1.05**10) print(efter_10_ar)
Det finns många inbyggda funktioner likt round(). Vi återkommer till detta. Ville bara visa lite.

f -string

Vi kanske vill ha en lite snyggare utskrift ibland. Det går att formatera utskriften med print() lite snyggare.
x = input("Hur bred är rektangeln?") y = input("Hur hög är rektangeln?") arean = float(x) * float(y) print(f"Om bredden är {x} och höjden är {y} så blir arean {arean}")
Det finns många sätt skapa snygga utskrifter. Återkommer även till detta.

Lite frågor

Vilken av nedanstående variabler är okej?
  q_898
  898q
Vad blir en int plus en int
  Det blir en int
  Det blir en float
Vad blir en int plus en float
  Det blir en int
  Det blir en float
Vad blir en int dividerat med en int
  Det blir en int
  Det blir en float
Vad för datatyp lämnar input() ifrån sig?
  int om användaren skriver ett tal, string om användaren skriver är sträng
  lämnar alltid ifrån sig string
Om vi behöver hämta in tal från input() hur gör vi då?
  vi typkonverterar strängen till en float eller int
  vi fångar upp data från input i en lämplig variabel för tal
Varför fungerar inte nedanstående program? Vad behöver du ändra för att det skall räkna rätt? Föreslå flera lösningar.
hojd = "10" bredd = "20" area = hojd * bredd print(area)
Varför fungerar inte nedanstående kod?
pi = 3.14 annat_tal = 42 s = "Pi är "+pi+" och annat_tal är "+annat_tal print(s)
Hur kan vi skriva ut texten i ovan program med f-string ? Skriv färdigt nedanstående kod.
pi = 3.14 annat_tal = 42


14.856100082397 ms