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)
if -satser (villkor)
Vi behöver ofta styra vad som ska hända utifrån om något är på det ena eller andra sättet.
if
Med if(sant/falskt) kan vi ställa frågan om något är sant och utifrån det välja att köra kod A eller kod B.
x = int(input("Skriv ett tal 1-10"))
if x >= 5:
print("över eller lika med fem")
if x < 5:
print("under fem")
x = int(input("Skriv ett tal 1-10"))
if x >= 5:
print("över eller lika med fem")
if x < 5:
print("under fem")
OBS att det härifrån och fram är viktigt att du indenterar koden rätt med tab. Prova vad som händer om du inte indenterar, försök sedan rätta till felet igen så att du blir kompis med felmeddelandet.
if ... else
Om det är ett villkor av typen att om det ena inte gäller, så gäller det andra, då kan vi använda else.
x = int(input("Skriv ett tal 1-10"))
if x >= 5:
print("över eller lika med fem")
else:
print("under fem")
x = int(input("Skriv ett tal 1-10"))
if x >= 5:
print("över eller lika med fem")
else:
print("under fem")
Vi kan förstås använda if -satser även med strängar.
x = input("Skriv ett namn")
if x == "kalle":
print("Heter Kalle!")
else:
print("Heter något annat")
x = input("Skriv ett namn")
if x == "kalle":
print("Heter Kalle!")
else:
print("Heter något annat")
if ... elif ... else
x = int(input("Skriv ett tal 1-10"))
if x > 5:
print("över fem")
elif x < 5:
print("under fem")
else:
print("exakt fem")
x = int(input("Skriv ett tal 1-10"))
if x > 5:
print("över fem")
elif x < 5:
print("under fem")
else:
print("exakt fem")
tjena if x else hej
Det finns en 1-raders if -version som kan vara smidig ibland.
x = False
print("tjena" if x else "hej")
x = True
print("tjena" if x else "hej")
x = False
print("tjena" if x else "hej")
x = True
print("tjena" if x else "hej")
Det kan tex vara en tilldelning av ett värde som beror på någon omständighet.
temperatur = 9
klader = "varma kläder" if temperatur < 15 else "vad som helst"
print("Ta på dig",klader,", det är",temperatur,"grader ute")
temperatur = 9
klader = "varma kläder" if temperatur < 15 else "vad som helst"
print("Ta på dig",klader,", det är",temperatur,"grader ute")
match ... case
matcha nummer
a = 2
match a:
case 1:
print("Ett")
case 2:
print("Två")
case 3:
print("Tre")
case _:
print("Ej 1,2 eller 3")
a = 2
match a:
case 1:
print("Ett")
case 2:
print("Två")
case 3:
print("Tre")
case _:
print("Ej 1,2 eller 3")
matcha tecken
keydown = 'w'
match (keydown):
case "w":
print("Upp")
case "a":
print("Vänster")
case "s":
print("Ners")
case "d":
print("Höger")
case _:
print("Ingenting")
keydown = 'w'
match (keydown):
case "w":
print("Upp")
case "a":
print("Vänster")
case "s":
print("Ners")
case "d":
print("Höger")
case _:
print("Ingenting")
matcha med | (eller)
x = 3
match x:
case 1 | 2:
print("Ett eller två")
case 3 | 4:
print("tree eller fyra")
case 5 | 6:
print("fem eller sex")
case 7 | 8:
print("sju eller åtta")
case _:
print("Över 8 eller mindre än 1")
x = 3
match x:
case 1 | 2:
print("Ett eller två")
case 3 | 4:
print("tree eller fyra")
case 5 | 6:
print("fem eller sex")
case 7 | 8:
print("sju eller åtta")
case _:
print("Över 8 eller mindre än 1")
match + if-satser
x = 3
match x:
case x if x >= 3:
print("Godkänt!")
case x if x < 3:
print("Tyvär, underkänt")
case _:
print("Fel inträffat")
x = 3
match x:
case x if x >= 3:
print("Godkänt!")
case x if x < 3:
print("Tyvär, underkänt")
case _:
print("Fel inträffat")
mönstermatchning lista
Mönstermatchning på en lista.
def match(lst):
match lst:
case ["a"]:
print("a")
case ["a", *resten]:
print(f"a och {resten}")
case [*borjan, "z"] | (*borjan, "z"):
print(f"{borjan} och z")
case _:
print("Inget")
match(["q", "g", "e"])
match(["q", "g", "z"])
match(["a", "g", "z"])
def match(lst):
match lst:
case ["a"]:
print("a")
case ["a", *resten]:
print(f"a och {resten}")
case [*borjan, "z"] | (*borjan, "z"):
print(f"{borjan} och z")
case _:
print("Inget")
match(["q", "g", "e"])
match(["q", "g", "z"])
match(["a", "g", "z"])
mönstermatchning dictionary
Mönstermatchning mot en dictionary.
def matcha(dictionary):
match dictionary:
case {"djur": d, "antal_ben": n}:
print(f"En {d} har {n} ben")
case {"djur": d, "lever_i": s}:
print(f"En {d} lever i {s}")
case {"bilmarke": d, "maxfart": s}:
print(f"En {d} kan köra i {s} km/h")
case _ :
print("Vet ej vad detta är")
matcha({"djur": "Häst", "antal_ben": 4})
matcha({"djur": "Tupp", "antal_ben": 2})
matcha({"djur": "Aborre", "lever_i": "havet"})
matcha({"djur": "Blåmes", "lever_i": "luften"})
matcha({"djur": "Blåmes", "lever_i": "luften"})
matcha({"djur": "Mask", "lever_i": "jorden"})
matcha({"bilmarke": "BMW", "maxfart": 240})
matcha({"bilmarke": "Lada", "maxfart": 130})
matcha({"djur": "Haj", "typ":"Farligt"})
matcha({})
def matcha(dictionary):
match dictionary:
case {"djur": d, "antal_ben": n}:
print(f"En {d} har {n} ben")
case {"djur": d, "lever_i": s}:
print(f"En {d} lever i {s}")
case {"bilmarke": d, "maxfart": s}:
print(f"En {d} kan köra i {s} km/h")
case _ :
print("Vet ej vad detta är")
matcha({"djur": "Häst", "antal_ben": 4})
matcha({"djur": "Tupp", "antal_ben": 2})
matcha({"djur": "Aborre", "lever_i": "havet"})
matcha({"djur": "Blåmes", "lever_i": "luften"})
matcha({"djur": "Blåmes", "lever_i": "luften"})
matcha({"djur": "Mask", "lever_i": "jorden"})
matcha({"bilmarke": "BMW", "maxfart": 240})
matcha({"bilmarke": "Lada", "maxfart": 130})
matcha({"djur": "Haj", "typ":"Farligt"})
matcha({})
Inom fysiken - eller närmare bestämt elektroniken - så finns det en komponent som heter motstånd. Värdet på dess resistans bestäms av färgkoden på utsidan. Strunta i själva funktionen nedan (vi går igenom det snart), se istället hur vi matchar färgerna.
def farg(*farger):
res = 0
i = 0
v = 0
ant_band=len(farger)
for farg in farger:
i = i + 1
match farg:
case "brun":
v = 1
case "röd":
v = 2
case "orange":
v = 3
case "gul":
v = 4
case "grön":
v = 5
case "blå":
v = 6
case "lila"|"violett":
v = 7
case "grå":
v = 8
case "silver":
v = -2
case "guld":
v = -1
if(ant_band == 3):
if(i==1):
res = res + v*10
if(i==2):
res = res + v*1
if(i==3):
res = res*10**v
if(ant_band == 4):
if(i==1):
res = res + v*100
if(i==2):
res = res + v*10
if(i==3):
res = res + v
if(i==4):
res = res*10**v
return(res)
R1 = farg("orange","orange","brun")
print("R1=",R1,'Ω')
R2 = farg("röd","röd","brun")
print("R2=",R2,'Ω')
def farg(*farger):
res = 0
i = 0
v = 0
ant_band=len(farger)
for farg in farger:
i = i + 1
match farg:
case "brun":
v = 1
case "röd":
v = 2
case "orange":
v = 3
case "gul":
v = 4
case "grön":
v = 5
case "blå":
v = 6
case "lila"|"violett":
v = 7
case "grå":
v = 8
case "silver":
v = -2
case "guld":
v = -1
if(ant_band == 3):
if(i==1):
res = res + v*10
if(i==2):
res = res + v*1
if(i==3):
res = res*10**v
if(ant_band == 4):
if(i==1):
res = res + v*100
if(i==2):
res = res + v*10
if(i==3):
res = res + v
if(i==4):
res = res*10**v
return(res)
R1 = farg("orange","orange","brun")
print("R1=",R1,'Ω')
R2 = farg("röd","röd","brun")
print("R2=",R2,'Ω')
Lite frågor
a = 3
if a > 2
print("större än 2")
a = 3
if a > 2
print("större än 2")
Varför fungerar inte ovan kod?
Saknas parentes
Saknas kolon och indentering
Saknas indentering
Vad blir print("Hejsan" if True else "Tjena")
Tjena
Hejsan
Error
Vad blir print("Hejsan" if False else "Tjena")
Hejsan
Error
Tjena
a = 2
match a:
case 1:
print("a")
case 2:
print("b")
case 3:
print("c")
case _:
print("d")
a = 2
match a:
case 1:
print("a")
case 2:
print("b")
case 3:
print("c")
case _:
print("d")
I ovan kod, om vi sätter a=10 vad blir utskriften.
print("a")
print("b")
print("c")
print("d")
def match(lst):
match lst:
case ["a"]:
print("a")
case ["a", *resten]:
print("b")
case [*borjan, "z"]:
print("c")
case _:
print("d")
def match(lst):
match lst:
case ["a"]:
print("a")
case ["a", *resten]:
print("b")
case [*borjan, "z"]:
print("c")
case _:
print("d")
I ovan kod, om vi kör match(["a"]) vad får vi för svar?
print("a")
print("b")
print("c")
print("d")
I ovan kod, om vi kör match(["a", "g", "z"]) vad får vi för svar?
print("a")
print("b")
print("c")
print("d")
I ovan kod, om vi kör match(["q", "g", "z"]) vad får vi för svar?