SA

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

  1. Läs in namn (sträng).

  2. Läs in antal_timmar som heltal eller flyttal beroende på krav.

  3. 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.