Programmering 1 – Python grunder

Fördjupning i Python-operatorer

  • Potensoperatorn **
    • Syntax: bas ** exponent.
    • Exempel: print(7**2)49.
    • Matematisk tolkning: 72=497^{2}=49.
  • Heltalsdivision //
    • Returnerar endast heltalsdelen; värdet avrundas nedåt mot minus oändligheten.
    • Exempel: print(7//2)3 eftersom 72=3.5\frac{7}{2}=3.5 och delen efter decimalen tappas.
    • Alternativt kan man först göra vanlig division och sedan konvertera till heltal: int(7/2)3.
  • Kvadratroten
    • Kan beräknas genom att upphöja talet till 0.50.5:
    • print(49**0.5)7 (samma som 49\sqrt{49}).
  • Exempelprogram (potenser)
  print(2**2)   # 4
  print(2**4)   # 16
  print(2**6)   # 64
  • Exempelprogram (jämförelse division / heltalsdivision)
  print(9/2, "och", 9//2)    # 4.5 och 4
  print(11/6, "och", 11//6)  # 1.833... och 1
  print(21/8, "och", 21//8)  # 2.625 och 2
  • Demonstrerar hur // kapar decimalerna.

Avrundning med round()

  • Funktion: round(tal, antal_decimaler) (andra argumentet är valfritt).
  • Exempel:
    • print(round(663.671245, 2))663.67
    • print(round(663.991245))664 (avrundar till närmaste heltal).
  • Viktig vid finansiella beräkningar eller utskrift av resultat där precision krävs till bestämda decimaler.

Tips för felsökning & kodkvalitet

  • Ett enda felplacerat tecken (t.ex. parentes, citattecken, kommatecken) kan hindra programmet från att köra.
  • Kodning kräver hög noggrannhet; ovana programmerare gör ofta syntaktiska misstag.
  • Felsök systematiskt:
    • Kör korta kodsnuttar ofta.
    • Läs felmeddelanden uppifrån och ned.
    • Testa om och om igen tills resultatet stämmer.

Användning av variabler

  • Allmänna anmärkningar
    • I många språk undviks å/ä/ö, men Python stöder dessa tecken.
    • Exekvering sker i sekvens – ordningen i koden spelar roll.
  • Rektangelexempel (hårdkodade värden)
  print("En rektangel har bredden 3 cm och längden 4 cm.")
  print("Omkretsen är", (3 + 4) * 2, "centimeter.")
  print("Arean är", 3 * 4, "kvadratcentimeter.")
  • Omkretsformel: O=2(l+b)O = 2\,(l + b)
  • Areaformel: A=l×bA = l \times b
    • Rektangelexempel (med variabler)
  bredd = 3
  längd = 4
  print("En rektangel har bredden", bredd, "cm och längden", längd, "cm.")
  print("Omkretsen är", (bredd + längd) * 2, "centimeter.")
  print("Arean är", längd * bredd, "kvadratcentimeter.")
  • Fördel: Enkla ändringar av bredd och längd ger nya resultat utan att ändra övriga rader.
    • Begrepp
  • Variabel = namngiven plats i minnet som kan lagra värde.
  • Gör koden flexibel, lättare att läsa och underhålla.

Gemensamma övningar (uppgifter 1–3)

  • Uppgift 1
  a = 5
  b = 10
  c = 2 * a - 3 * b
  print(c)  # -20
  • Beräknar c=2a3bc = 2a - 3b.
    • Uppgift 2 – Grundversion
  • Produkt av 25×6025 \times 60 med variabler.
  • Vidare utmaningar:
    • a) Kvot: 4020\frac{40}{20}
    • b) Potens: 32832^{8}
    • c) Roten ur 94099409 (använd 0.50.5-exponenten eller **0.5).
    • Uppgift 3 – Triangelarea
  • Formeln: A=bas×ho¨jd2A = \frac{\text{bas} \times \text{höjd}}{2}.
  • Program ska använda variabler bas och höjd och skriva ut värdena.

Individuella övningar (uppgifter 4–9)

  • Uppgift 4 – Rektangel
    • Data: bredd=230cm\text{bredd}=230\,\text{cm}, la¨ngd=92cm\text{längd}=92\,\text{cm}.
    • Beräkna omkrets och area med variabler.
  • Uppgift 5 – Cirkel
    • Radie = 5cm5\,\text{cm}.
    • Omkrets: O=2πrO = 2\pi r.
    • Area: A=πr2A = \pi r^{2}.
  • Uppgift 6 – "Antal födslar"
    • Konstant: 1a˚r=365×24×60×60sek1\,\text{år}=365\times24\times60\times60\,\text{sek}.
    • Fråga: Hur många barn föds på 5 år om ett barn föds var 7:e sekund?
    • Viktigt: bryt ned beräkningen stegvis med variabler (sek_år, sek_5år, antal_födslar etc.).
  • Uppgift 7 – Valutaomvandlare
    • Variabler: växelkurs_euro, växelkurs_dollar.
    • Omvandla 1000SEK1000\,\text{SEK} till Euro och Dollar.
    • Avrunda båda resultaten till två decimaler med round().
  • Uppgift 8 – Fart & tid (grund)
    • Delsträckor:
    • 100km100\,\text{km} @ 50km/h50\,\text{km/h}
    • 120km120\,\text{km} @ 80km/h80\,\text{km/h}
    • 80km80\,\text{km} @ 40km/h40\,\text{km/h}
    • Tidformel: t=svt = \frac{s}{v}.
    • Summera till total restid.
  • Uppgift 9 – Fart & tid (svår)
    • Nya hastigheter: 110km/h110\,\text{km/h} på andra sträckan, 30km/h30\,\text{km/h} på tredje.
    • Konvertera decimaldel av timmar till minuter: min=(tt)×60\text{min} = (t - \lfloor t \rfloor) \times 60.
    • Presentera varje deltid som "? h och ? min" och summera total restid.