Detta skapar en PDF som du sedan kan skriva ut. Du kan även spara ner PDFn och skriva ut senare.
Titel på utskriften?
Tack för ditt bidrag
Om vi kan använda det så lägger vi upp det på sidan. Nedan en länk till ditt bidrag om du vill spara det.
Spara som ...
Du sparar ditt skript under detta namn och kan sedan hämta tillbaka det med samma namn.
Läs in
Läs in ett tidigare sparat skript. Obs att du enbart kan läsa in skript i den webbläsare där du sparade skriptet. Vill du kunna läsa in och spara skript oberoende av webbläsare, så behöver du skaffa ett login (enkelt och gratis).
Skicka in bidrag
Föreslå rubrik
Beskriv vad din kod gör
Skapa kort länk
Använd en kort URL för att skicka länk till koden via SMS eller epost. När mottagaren klickar på länken, så öppnas denna webbsida, med din kod och din text. Länken rensas bort automatiskt om den inte används.
Rubrik (frivilligt)
Beskrivning (frivilligt)
Länk (kopiera hela)
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")
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)
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)
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)
text = "telekommunikationsradioapparat"
text = "Kal"
text = "Ada"
print(text)
En smart grej är att du kan lista variabler och lista tilldelningen.
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)
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)
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)
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)
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.
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?
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)
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)
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)
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)
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)
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)
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)
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)
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)
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.
Så 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)
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)
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)
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)
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)
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)
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}")
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.