M02 Hjälp till uppgifter

På denna sidan kommer det finnas hjälp till lösning av uppgifter samt en fullt fungerande lösning i form av kod.

Att kopiera färdiga lösningar gör inte att du blir bättre på programmering, men det kan vara ett effektivt sätt att få lite hjälp för att bli en duktig programmerare. Det är ditt ansvar att använda hjälpen på rätt sätt.
Vissa lösningar finns som kod som går att kopiera medan andra lösningar endast finns som bilder som är möjliga att skriva av.

Lösningsförslagen är inte alltid kommenterade i koden, tanken är att du skall kunna ta ner koden och själv förstå vad som händer genom att testa och formulera kommentarer för dig själv.

Flera av lösningarna har jag filmat och förklarar hur jag tänker när jag löser uppgiften. Ibland har jag kompletterat med andra bra filmer som förklarar olika delar på ett bra sätt. Det är inte alltid jag som har gjort filmen och då passar den bättre här än på momentets huvudsida.

Övning 1

Lösningsförslag [klicka för att visa]

print("Johan Hällgren")
print("Ett\ntvå\ntre")
print()      # Det går också att skriva print("")
print("Peter \"Foppa\" Forsberg var en duktig hockeyspelare.")

Övning 2

Lösningsförslag [klicka för att visa]

# Johan Hällgren
print("Johan Hällgren")   # Skriver ut mitt namn
print("Ett\ntvå\ntre")    # \n skapar ny rad
print()                   # Det går också att skriva print("")
# \" behövs för att skriva ut \"
print("Peter \"Foppa\" Forsberg var en duktig hockeyspelare.")
# Det går också att skriva print('Peter "Foppa" Forsberg')
# Kolla vilken snygg kolumn kommentarerna skapade på rad 2-4

Uppgift m02u01

Lösningsförslag [klicka för att visa]

Kodförslag

Inspelat lösningsförslag [klicka för att visa]

Övning 3

Lösningsförslag [klicka för att visa]

# Bra, beskrivande variabelnamn (snake_case)
namn = "Anna Andersson"
fodelsear = 2009
alder = 16

# Utskrift
print(namn)
print(fodelsear)
print(alder)

# Exempel på dåligt/otydligt namn
x = 16
print(x)  # Svårt att förstå vad 'x' betyder jämfört med 'alder'

Övning 4

Lösningsförslag [klicka för att visa]

namn = "Anna"
alder = 16
favoritfarg = "grön"

# Utskrift
print(namn, alder, favoritfarg)

# Kolla datatyper
print(type(namn))        # <class 'str'>
print(type(alder))       # <class 'int'>
print(type(favoritfarg)) # <class 'str'>

Övning 5

Lösningsförslag [klicka för att visa]

# 1) Två heltal och grundräkning
a = 12
b = 5

print(a + b)               # 17
print(a - b)               # 7
print(a * b)               # 60
print(a / b)               # 2.4  (flyttal)
print(a // b)              # 2
print(a % b)               # 2

# 2) Förstå // och %
sekunder = 3661
minuter = sekunder // 60
print(minuter)              # 61
resterande_sek = sekunder % 60
print(resterande_sekunder)  # 1

# 3) Cirkelarea (pi * r**2)
pi = 3.14
r = 5
area = pi * (r ** 2)        # 3.14 * 25 = 78.5
print(area)                 # 78.5

Uppgift m02u02

Lösningsförslag [klicka för att visa]

Kodförslag

Inspelat lösningsförslag [klicka för att visa]

Notera att på uppgift 13 så måste uppräkningen ske innan utskriften görs, att göra en uppräkning inne i printfunktionen (print(a+=b)) kommer ge dig ett error.

Övning 6

Lösningsförslag [klicka för att visa]

namn = "Anna"
alder = 16
langd = 1.7235  # meter

# 1) Skriv ut en mening med f-string
print(f"{namn} är {alder} år gammal och {langd:.2f} meter lång.")

# 2) Exempel: samma tal utan avrundning vs med två decimaler
print("Utan formatering:", langd)
print(f"Med två decimaler: {langd:.2f}")

Uppgift m02u03

OBS: Denna uppgiften är den gamla m02u03 där eleverna skulle skapa alla varianter av utskrifter för att kunna jämföra dessa. Den justerade uppgiften handlar om att först fokusera på f-string och sedan eventuellt göra de andra varianterna. Den totala lösningen är dock den samma.

Lösningsförslag [klicka för att visa]

Kodförslag

Inspelat lösningsförslag [klicka för att visa]

Övning 7

Lösningsförslag [klicka för att visa]

namn = input("Vad heter du? ")
ålder = int(input("Hur gammal är du? "))

print(f"{namn} är {ålder} år gammal.")
print(f"Om tio år är {namn} {ålder + 10} år gammal.")

Uppgift m02u04

Lösningsförslag [klicka för att visa]

Kodförslag

Inspelat lösningsförslag [klicka för att visa]

Lösningsförslag utbyggnad 1 [klicka för att visa]

Kodförslag

Lösningsförslag utbyggnad 2 [klicka för att visa]

Kodförslag

Utskrift

Kodförslag

Uppgift m02u05

Lösningsförslag [klicka för att visa]

Kodförslag

Inspelat lösningsförslag [klicka för att visa]