Programmering nivå 2

Kap 1.3 – Strukturerad problemlösning med kod

Dela upp kod i funktioner och tänk modulärt.

Mål med lektionen

  • Kunna strukturera din kod i funktioner.
  • Förstå när och varför du delar upp program i delar.
  • Repetera grundläggande logiska strukturer och förbättra läsbarheten i din kod.
  • Skriva ett enklare program med tydlig intern struktur.

Så här lär du dig bäst

I Programmering 1 har du lärt dig grunderna i variabler, villkor och loopar. Det kommer vi att repetera i kommande kapitel, men nu är fokus att börja tänka mer strukturerat. Fundera över hur du kan dela upp koden så att varje del gör en sak. Läsbar kod är bättre kod. Kommentera, namnge tydligt och använd funktioner för att undvika upprepning.

Varför strukturera kod?

Genom att dela upp programmet i funktioner kan du göra koden lättare att förstå, återanvända delar och testa varje del för sig.

Exempel – Beräkna medelvärde

def get_number(prompt):
    return float(input(prompt))

def calculate_average(n1, n2, n3):
    return (n1 + n2 + n3) / 3

def main():
    number1 = get_number("Enter first number: ")
    number2 = get_number("Enter second number: ")
    number3 = get_number("Enter third number: ")
    average = calculate_average(number1, number2, number3)
    print(f"The average is {average:.2f}")

main()

Parameter och argument

När en funktion ska kunna arbeta med olika värden använder den parametrar och argument. Orden liknar varandra, men de betyder inte samma sak.

  • Parameter: namnet som står i funktionsdefinitionen.
  • Argument: värdet som skickas in när funktionen anropas.
def greet(name):
    print("Hej " + name)

greet("Anna")

I exemplet är name en parameter. Den står i raden där funktionen skapas: def greet(name):. Värdet "Anna" är ett argument. Det skickas in när funktionen anropas: greet("Anna").

I medelvärdesprogrammet är prompt, n1, n2 och n3 parametrar. När programmet kör get_number("Enter first number: ") är texten "Enter first number: " ett argument. När programmet kör calculate_average(number1, number2, number3) är number1, number2 och number3 argument.

Kom ihåg: parametern är platsen i funktionen. Argumentet är värdet du skickar in till den platsen.

Obs: Om du får SyntaxError på raden med print(f"..."), kontrollera att du kör filen med python3 filnamn.py och inte python filnamn.py. På vissa Mac-datorer pekar python fortfarande på Python 2.

I VS Code kan du ändra Python-version så här:

  1. Tryck Cmd + Shift + P.
  2. Skriv Python: Select Interpreter.
  3. Välj en version som börjar med Python 3, till exempel Python 3.13.7.
  4. Kör filen igen.

Interaktiv övning: beräkna medelvärde

Testa hur programmet använder tre funktioner: en för inmatning, en för beräkning och en main()-funktion som styr ordningen. Skriv ett tal i taget, precis som i ett vanligt Python-program.

Prova till exempel att:

  • starta programmet och skriva första talet när programmet frågar
  • skriva decimaltal med punkt, till exempel 7.5
  • skriva något som inte är ett tal och se felmeddelandet
Tryck på Starta program för att testa programmet.

Programmering 2-koppling: funktionen calculate_average() är lätt att testa eftersom den bara tar emot tre tal och returnerar ett resultat.

Öva själv

Skriv in koden själv i din editor och testa att den fungerar. Skapa först en egen kursmapp för dina Python-filer, till exempel programmering-2, och döp filerna strukturerat efter kapitel. För den här lektionen kan filen heta kap1-3.py.

När programmet fungerar ska du ändra koden medvetet så att du stoppar in fel och ser vad som händer. Läs felmeddelandet noggrant och försök förstå vilken rad och vilken typ av fel Python pekar på.

Exempel på fel att testa

  • Ta bort kolon efter def main().
  • Ta bort indraget framför en rad inne i en funktion.
  • Byt float(input(prompt)) till float(input).
  • Skriv calculate_averge i stället för calculate_average.
  • Ta bort ett citattecken i en text, till exempel "Enter first number: .
  • Skriv in text i programmet när det frågar efter ett tal, till exempel hej.
  • Ändra divisionen från / 3 till / 0.
  1. Fråga efter användarens namn och ålder.
  2. Beräkna vilket år de fyller 100 år.
  3. Skriv ut ett personligt meddelande.

När du har försökt själv kan du jämföra med ett lösningsförslag: webbsida med förklaring eller nedladdningsbar Python-kod.

Reflektion

  • Hur upplevde du att dela upp programmet i funktioner?
  • Vad är fördelen med att skriva en main()-funktion?
  • Hur kan denna struktur hjälpa dig i större projekt?

Tillbaka till Kapitel 1