for
-loop)Grundsintax:
for variabel in range(start, stop [, steg]):
# kodblock
Parametrar i range(...)
:
\text{start} (inkluderande)
\text{stop} (exkluderande)
\text{steg} (valfritt, default 1)
Vanligaste fel: glömma kolon : efter for ...
-raden eller skriva fel antal argument.
Uppgift:
"Låt användaren skriva in ett tal n och summera alla tal från 1 till n."
Lösningsidé:
n = int(input("Ange ett tal: "))
summa = 0
for i in range(1, n+1):
summa += i
print("Summan av talen från 1 till", n, "är:", summa)
Viktiga punkter:
Input hämtas som sträng, konverteras till int.
n+1 i range
eftersom stop-gränsen ej inkluderas.
Ursprungligt kodstycke:
for x in range(1, 6):
print("Jag fyller", x, "år!")
Önskat resultat: 25\le x\le29
Ändra till range(25, 30)
.
Kod:
for n in range(1, 17, 3):
print(n)
Utskrift: 1,4,7,10,13,16 (steglängd 3)
Multiplikationstabeller 1–10:
for i in range(1, 11):
for j in range(1, 11):
print(i*j)
Två slingor inbäddade (nested): yttre i, inre j → totalt 100 utskrifter.
För tydligare utseende:
for i in range(1, 11):
print("Table=", i, ":")
for j in range(1, 11):
print(i, "*", j, "=", i*j)
Visar rad för rad:
\text{Table}=1 : 11=1,\;12=2,\dots
Saknad kolon efter for
-raden → SyntaxError: expected ':'
.
Fel operator t.ex. 2n
istället för 2*n
.
Använda punkt istället för komma i range
, ex. range(1.61)
ger fel eftersom range
kräver heltal.
Boolean representerar endast två värden:
True
(sant)
False
(falskt)
Exempel:
a = True
b = False
Konvertering till heltal:
int(True) # 1
int(False) # 0
Matematisk symbol | Python-operator |
---|---|
< |
|
\le |
|
= |
|
\ge |
|
> |
|
\neq |
|
print(5 > 3) # True
print(10 == 2) # False
print("hej" != "HEJ") # True
Grundläggande flödesschema: if
(villkor) → True: kör kodblock; False: hoppa över.
Syntax:
if villkor:
# kod
elif annat_villkor:
# kod
else:
# kod
Endast if
:
num = 3
if num > 0:
print(num, "är ett positivt tal")
if
+ else
:
num = -1
if num > 0:
print("positivt")
else:
print("negativt")
if
+ elif
+ else
(flera villkor):
if num > 0:
...
elif num < 0:
...
else:
print("num är 0")
Dos beror på ålder eller vikt.
if
/else
)svar = input("Är patienten ett barn? Y/N")
if svar == "Y":
print("Patienten ska ha 500 mg per dag.")
else:
print("Patienten ska ha 750 mg per dag.")
Viktig detalj: två likhetstecken ==
i jämförelsen.
elif
-kedja)vikt = int(input("Hur mycket väger patienten? Svara i kg."))
if vikt < 20:
print("500 mg per dag")
elif 20 <= vikt <= 40:
print("750 mg per dag")
elif 41 <= vikt <= 60:
print("1000 mg per dag")
else:
print("1500 mg per dag")
Flera intervall hanteras med separata elif
.
Glömt kolon efter if
, elif
, else
.
Fel indrag (indentation) – Python kräver konsekventa mellanslag/tabbar.
Ett =
istället för ==
i villkor.
Saknade citattecken runt textsträngar.
Fel ordning på if
→ elif
→ else
.
Använda matematiskt skrivsätt utan operatorer, ex. 2n
.
Följande kod gav två SyntaxError:
for n in range(0, 51)
print(2n)
Rättningar:
Lägg till kolon efter range(...):
Byt 2n
till 2*n
.
Skriv ut ordet "Jensen!" 4 gånger:
for n in range(1,5):
print("Jensen!")
Korrigera kod som ska skriva jämna tal 2–60.
Skriv de tio första talen i 7-ans tabell och vidare med full utskrift 7 × n = produkt.
Program för betygsättning utifrån poäng:
poäng = int(input("Ange dina poäng (0-100): "))
if poäng < 50:
print("Ej godkänt")
elif 50 <= poäng <= 59:
print("Ditt betyg är: E")
elif 60 <= poäng <= 69:
print("Ditt betyg är: D")
elif 70 <= poäng <= 79:
print("Ditt betyg är: C")
elif 80 <= poäng <= 89:
print("Ditt betyg är: B")
else:
print("Ditt betyg är: A")
Feljakt i kod med variabel number
(rätt svar enligt materialet var alternativ E): if (number > 1000): number –= 1 else: number = 1000
Debugga inmatning av ett flyttal och jämförelse med 156 (glöm inte float()
och ==
).
Använd for ... in range(...)
för deterministiska upprepningar.
Uteslutande parameter stop ingår inte.
Bool är grunden för villkorssatser; allt som jämförs returnerar True
eller False
.
I if-satser krävs:
Kolon efter villkorsraden.
Indrag på blocknivå.
Dubbel-likhet ==
för jämförelse.
Vid flera villkor: kedja elif
innan else
.
Vid multiplikation i kod: skriv alltid *
(t.ex. 2*n
).
Använd inre/yttre loopar för tabeller; var tydlig med variabelnamn (i
, j
).
Testa program rad för rad och använd utskrifter för felsökning.