Programmering nivå 1 med Python
Kapitel 11: Struktur och läsbar kod
I detta kapitel lär du dig namngivning, kommentarer och hur du strukturerar kod så att program blir tydliga och lätta att underhålla.
Innehållsförteckning
Klicka på ett avsnitt för att hoppa direkt.
11.1 Namngivning
När man programmerar är det viktigt att använda tydliga namn på variabler och funktioner.
Bra namn gör koden
- lättare att läsa
- lättare att förstå
- lättare att felsöka
Dåliga namn
x = 10
y = 20
z = x + y
Det är svårt att förstå vad variablerna betyder.
Bra namn
width = 10
height = 20
area = width * height
Nu blir det tydligare vad programmet gör.
Namn på funktioner
Funktioner bör ha namn som beskriver vad de gör.
Dåligt exempel
def f(a, b):
return a + b
Bra exempel
def add(a, b):
return a + b
Regler i Python
Variabelnamn
- ska börja med en bokstav eller underscore
- får innehålla bokstäver och siffror
- får inte vara ett reserverat ord
Bra vanor
- Använd engelska namn i kod
- Använd små bokstäver
- Använd tydliga ord istället för förkortningar
Exempel
total_price = 100
user_name = "Anna"
Sammanfattning
Bra namngivning gör att
- koden blir tydligare
- det blir lättare att förstå programmet
- det blir enklare att arbeta vidare med koden
Övning
Förbättra namnen i koden nedan
a = 5
b = 10
c = a * b
print(c)
Interaktivt exempel: tydliga namn
Jämför otydliga variabelnamn med namn som visar vad programmet räknar ut.
Prova till exempel att:
- byta
atillwidth - byta
btillheight - byta
ctillarea - lägga till tydliga utskrifter, till exempel
print(f"Bredd: {width}"),print(f"Höjd: {height}")ochprint(f"Area: {area}")
Tryck på Kör kod för att testa programmet.
11.2 Kommentarer
Kommentarer används för att förklara kod.
En kommentar skrivs med tecknet # och körs inte av programmet.
Exempel
# detta är en kommentar
print("Hej")
Kommentarer används för att göra koden lättare att förstå för andra och för dig själv.
När man ska använda kommentarer
Kommentarer är bra när man vill
- förklara vad programmet gör
- förklara svåra delar av koden
- beskriva syftet med variabler eller funktioner
Exempel
# fråga användaren efter ålder
age = int(input("Hur gammal är du? "))
# räkna ut ålder om 5 år
future_age = age + 5
print(f"Om fem år är du {future_age} år gammal")
När man inte ska använda kommentarer
Man ska inte skriva kommentarer som bara upprepar vad koden redan visar.
Dåligt exempel
# sätt x till 10
x = 10
Det är redan tydligt vad koden gör.
Bättre kod istället för kommentarer
Ibland är det bättre att skriva tydligare kod istället för att använda kommentarer.
Dåligt exempel
# räkna ut area
a = w * h
Bättre exempel
area = width * height
Nu behövs ingen kommentar eftersom variabelnamnen är tydliga.
Kommentarer i funktioner
Kommentarer är extra viktiga i funktioner.
def add(a, b):
# returnerar summan av två tal
return a + b
Sammanfattning
Använd kommentarer för att
- förklara varför något görs
- förklara svår kod
Undvik kommentarer som förklarar självklar kod. Det beror på vem som ska läsa koden hur utförlig den ska vara.
Övning
Lägg till lämpliga kommentarer i koden
name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
future_age = age + 10
print(f"Hej {name}")
print(f"Om tio år är du {future_age} år gammal")
Interaktivt exempel: kommentarer
Testa kommentarer som förklarar varför programmet gör vissa steg.
Prova till exempel att:
- ändra eller ta bort kommentarerna och se att programmet körs likadant
- lägga till en kommentar som förklarar uträkningen
- ändra från 10 år till 5 år
Tryck på Kör kod för att testa programmet.
11.3 Strukturera kod
Att strukturera kod betyder att man organiserar programmet så att det blir lätt att läsa, förstå och vidareutveckla.
Bra struktur gör stor skillnad när program blir större.
Dela upp i funktioner
Istället för att skriva all kod i en lång lista kan man dela upp programmet i funktioner.
Dåligt exempel
name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
future_age = age + 5
print(f"Hej {name}")
print(f"Om fem år är du {future_age} år gammal")
Bättre exempel
def greet(name):
print(f"Hej {name}")
def calculate_future_age(age):
return age + 5
name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
greet(name)
future_age = calculate_future_age(age)
print(f"Om fem år är du {future_age} år gammal")
Använd tydliga steg
Ett program blir tydligare om det följer en struktur
- input
- bearbetning
- output
Exempel
# input
age = int(input("Hur gammal är du? "))
# bearbetning
future_age = age + 5
# output
print(f"Om fem år är du {future_age} år gammal")
Undvik onödigt upprepad kod
Om samma kod används flera gånger bör man använda funktioner.
Dåligt exempel
print("Hej Anna")
print("Hej Erik")
print("Hej Sara")
Bättre exempel
def greet(name):
print(f"Hej {name}")
greet("Anna")
greet("Erik")
greet("Sara")
Sammanfattning
Bra struktur innebär att
- program delas upp i funktioner
- koden följer tydliga steg
- upprepning undviks
Det gör programmet
- lättare att läsa
- lättare att felsöka
- lättare att utveckla
Övning
Gör om koden så att den använder funktioner
name = input("Vad heter du? ")
number = int(input("Skriv ett tal: "))
result = number * 2
print(f"Hej {name}")
print(f"Ditt tal gånger två är {result}")
Interaktivt exempel: strukturera ett kassaprogram
Testa hur ett verkligare program blir tydligare när beräkning och utskrift ligger i egna funktioner.
Prova till exempel att:
- ändra pris, antal och rabatt i inmatningen
- ändra rabattregeln i
rakna_rabatt() - lägga till en funktion som heter
rakna_moms()
Fyll i en rad för varje fråga:
- Vilken vara köper kunden?
- Pris per vara
- Antal
- Rabatt i procent
Tryck på Kör kod för att testa programmet.
11.4 Dela upp program och läslig kod
När program blir större är det viktigt att både dela upp programmet och skriva läsbar kod.
Det gör att programmet blir lättare att förstå, ändra och felsöka.
Dela upp program i delar
Ett program bör delas upp i mindre delar med hjälp av funktioner. Varje funktion ska ha en tydlig uppgift.
Exempel
def greet(name):
print(f"Hej {name}")
def double(number):
return number * 2
name = input("Vad heter du? ")
number = int(input("Skriv ett tal: "))
greet(name)
result = double(number)
print(f"Resultatet är {result}")
Läslig kod
Kod ska vara lätt att läsa, både för dig själv och för andra.
Det uppnås genom
- tydliga variabelnamn
- tydliga funktioner
- bra struktur
- korrekta indrag
Exempel på oläslig kod
n=input("namn")
a=int(input("ålder"))
print("hej",n,a+5)
Exempel på läsbar kod
name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
future_age = age + 5
print(f"Hej {name}")
print(f"Om fem år är du {future_age} år gammal")
Tänk på
- Lämna tomma rader mellan delar av programmet
- Använd konsekvent stil
- Undvik onödigt komplex kod
Sammanfattning
Att dela upp program och skriva läsbar kod gör att
- program blir tydligare
- det blir enklare att hitta fel
- det blir lättare att utveckla vidare
Övning
Förbättra koden så att den blir mer läsbar
x=input("namn")
y=int(input("tal"))
z=y*2
print("hej",x)
print(z)
Interaktivt exempel: gör koden läsbar
Jämför kompakt kod med samma program skrivet med tydliga namn och mellanrum.
Prova till exempel att:
- byta
xtilluser_name - byta
ytillnumberochztilldoubled_number - lägga till mellanrum runt
=och* - göra utskriften tydligare, till exempel
print(f"Ditt tal gånger två är {doubled_number}")
Tryck på Kör kod för att testa programmet.
11.5 Övningar
I dessa övningar ska du träna på
- namngivning
- kommentarer
- struktur
- läsbar kod
Övning 1
Förbättra namnen i koden
a = 5
b = 10
c = a + b
print(c)
Övning 2
Lägg till kommentarer som förklarar vad koden gör
name = input("Vad heter du? ")
age = int(input("Hur gammal är du? "))
future_age = age + 5
print(f"Hej {name}")
print(f"Om fem år är du {future_age} år gammal")
Övning 3
Gör koden mer läsbar
n=input("namn")
x=int(input("tal"))
y=x*2
print("hej",n)
print(y)
Övning 4
Dela upp programmet i funktioner
name = input("Vad heter du? ")
number = int(input("Skriv ett tal: "))
result = number * 2
print(f"Hej {name}")
print(f"Ditt tal gånger två är {result}")
Övning 5
Skriv ett eget program som
- frågar användaren efter namn och ålder
- räknar ut hur gammal personen är om 10 år
- använder funktioner
- har tydliga variabelnamn
- innehåller minst två kommentarer
Programmet ska vara lätt att läsa och förstå.
Quiz
Svara på frågorna och klicka sedan på knappen längst ner för att se hur många rätt du fick.
11.6 Reflektionsfrågor
- Varför är det viktigt att använda tydliga variabelnamn?
- Vad kan hända om man använder otydliga namn i sin kod?
- När är det bra att använda kommentarer i ett program?
- När är det onödigt att använda kommentarer?
- Vad innebär det att strukturera kod?
- Varför är det bra att dela upp program i funktioner?
- Vad kännetecknar läsbar kod?
- Hur kan man göra ett program lättare att förstå för andra?
- Varför är det viktigt att skriva kod som man själv förstår i efterhand?
- Vad kan du göra för att förbättra din egen kod i framtiden?