Programmering 1: Input och For-loopar
Input – att mata in text och tal
Grundform:
variabel = input()
Med prompt:
namn = input("Vänligen fyll i ditt namn:")
print("Trevligt att träffas", namn)
Alternativ utan mellanslag kring variabel (konkatenering med +):
print("Hej " + namn + "!")
Datatypkonvertering
Alla värden som kommer via input() tolkas först som strängar.
Om tal behövs:
Heltal → int()
python ålder = int(input("Hur många år är du?"))
Decimaltal → float()
python längd = float(input("Hur lång är du?"))
Konsekvens av att glömma konverteringen:
Exempel:
python tal = input("Skriv ett heltal:") print(5 * tal) # "8" → "88888"
Korrekt:
python tal = int(input("Skriv ett heltal:")) print(5 * tal) # 8 → 40
Exempel – Prisberäkning för PT-timmar
Läs in namn (sträng).
Läs in antal_timmar som heltal eller flyttal beroende på krav.
Beräkna kostnad:
pris = 499
kostnad = pris * antal_timmar
print("Det kostar", kostnad, "kr.")
Avrundning
Syntax:
round(tal, antal_decimaler)
Exempel:
print(round(663.671245, 2)) # → 663.67
print(round(663.991245)) # → 664
Övningar (Individuella)
Uppgift 1
a) Hälsa användaren med namn.
b) Läsa ålder och skriv:
“Om fem år är du __ år gammal.” (addera 5).
c) Konvertera längd i meter till centimeter (multiplicera med 100).Uppgift 2
Skriv program som avrundar 188.987123
a) till två decimaler
b) till en decimal.Uppgift 3 (Grupp)
Beräkna maxpuls med formeln
\text{maxpuls} = 220 - \text{ålder}
Utdata: “Din maxpuls är __ slag per minut”.Uppgift 4
Be användaren mata in fyra decimaltal, multiplicera dem och visa resultatet.
Vanliga fel att undvika
Glömmer att spara input i variabel.
Missar int() / float() vid numerisk inmatning.
Använder kommatecken i stället för punkt som decimaltecken.
For-Loopar – Att upprepa kod
Syfte: köra samma kodblock flera gånger utan upprepade rader kod.
Grundstruktur:
for variabel in range(stopp):
# kod som upprepas
Viktigt: kolon (
:
) efter for-satsen och indrag (indentering) på kodraderna i loopen.
Enkla exempel
Skriv “Hej” fem gånger:
for n in range(5):
print("Hej")
Visa indexvärden 0\rightarrow4:
for i in range(5):
print(i)
range() – start, stopp, steg
Allmän form:
range(start, stopp, steg)
Notera: stopp-värdet ingår inte.
Exempel start + stopp:
for i in range(1, 6):
print(i) # skriver 1-5
Exempel med steg:
for i in range(0, 21, 5):
print(i) # 0, 5, 10, 15, 20
For-Loopar för beräkningar
Ackumulera summa 1–100:
summa = 0
for i in range(1, 101):
summa += i # samma som summa = summa + i
print("Summan av alla tal mellan 1 och 100:", summa)
Nästlade For-Loopar (loop i loop)
Syntax:
for i in range(yttre_gräns):
for j in range(inre_gräns):
# kod körs yttre*inre gånger
Exempel utan radbyte:
for i in range(3):
for j in range(2):
print("Hej ", end="")
print("\n")
Utdata (sammanhängande):
Hej Hej
Hej Hej
Hej Hej
Parametern end="" i
print()
hindrar automatisk ny rad och möjliggör kontrollerat radbyte.
Praktiska & Pedagogiska Kopplingar
Repetition: Loops eliminerar manuell kopiering av kod och minskar fel.
Datatypmedvetenhet: Viktigt för korrekt beräkning och minneshantering.
Felhantering: Tydlig felsökning genom att kontrollera datatyper, variabelnamn och indentering.
Relevans: Pris-, ålders- och maxpulsexempel visar direkt nytta i hälso-/e-handelssystem.
Etik: Hantera personuppgifter (namn, ålder) med integritet; lagra inte mer än nödvändigt.
Sammanfattning
input() tar alltid emot strängar ⇒ konvertera vid behov.
int() för heltal, float() för decimaltal, round() för avrundning.
for-loopar med
range()
är centrala för upprepning:Standard: range(stopp)
Utökad: range(start, stopp, steg)
Nästlade loopar möjliggör tabeller, matriser och komplex utskrift.
Övningarna täcker hälsningsprogram, ålders- och längdkonvertering, avrundning, maxpuls, multiplikation av flera tal – öva dem för full förståelse inför prov och inlämning.