Kmom03: Funktioner och moduler
I detta kursmoment ska vi kolla på hur vi kan strukturera koden så den blir mer effektiv och mer lättläst. Du introduceras till funktioner och hur de kan underlätta för att återanvända koden och moduler för att strukturera koden i flera filer. Vi kommer i övningar och uppgifter träna på hur vi skriver funktioner med och utan argument och hur vi skickar tillbaka data från funktioner. Till slut vidareutvecklar vi Marvin så han kan svara på ännu fler frågor.

Marvin skall nu lära sig lite mer och få en bättre struktur
Förberedelser
Section titled “Förberedelser”Innan du börjar med kmom03 så behöver du ha jobbat igenom Kmom02.
Inspelat material
Section titled “Inspelat material”Här hittar du inspelningar som görs under kursens genomförande.
Funktioner och moduler
Section titled “Funktioner och moduler”Nu ska vi fokusera på att skriva python-kod i avskiljbara delar som vi sedan kan återanvända.
Att göra
Section titled “Att göra”Här kan du på egen hand förbereda dig genom att läsa i kurslitteraturen, jobba med övningar och dessutom lite annat material som är relevant.
Kurslitteratur
Section titled “Kurslitteratur”Vi fortsätter att läsa i boken Python for Everybody: Exploring data in Python3.
-
Läs och jobba igenom följande kapitel i boken (alternativt kolla på videorna):
- Ch4 Function
-
Jobba igenom artikeln/övningen Funktioner, argument och returvärden för att träna på hur du skapar funktioner. De exempelprogram du gör kan du spara i ditt kursrepo under
src/kmom03/practice -
Jobba igenom övningen LEGB regeln och scopes i Python som handlar hur python hanterar scope och var variabler är tillgängliga. De exempelprogram du gör kan du spara i ditt kursrepo under
src/kmom03/practice -
Jobba igenom artikeln/övningen Moduler i Python för att bekanta dig med ett sätt att strukturera koden i Python. De exempelprogram du gör kan du spara i ditt kursrepo under
me/kmom03/practicedå koden bygger på övningen från måndag.
Seminarium
Section titled “Seminarium”Inför seminariet bör du ha arbetat igenom övningen “Funktioner, argument och returvärden” och övningen “LEGB regeln och scopes i Python” samt läst motsvarande i kurslitteraturen.
Läs om seminarier.
Kort före seminariet publiceras de uppgifter och frågor som vi kommer att arbeta med under seminariet. En förberedande del som du arbetar med själv publiceras innan övriga frågor och uppgifter.
-
En timme innan seminariet publiceras den första delen som omfattar 14 teorifrågor. Gå igenom och försök besvara dessa frågor utan att söka svar på nätet. Notera de frågor du tycker behöver tas upp under seminariet.
Här publiceras Seminarium 03 förberedande teorifrågor.
-
I samband med seminariets start publiceras resterande frågor och uppgifter.
Här publiceras Seminarium 03 övriga frågor och uppgifter.
Uppgifter
Section titled “Uppgifter”Följande uppgifter skall utföras och resultatet skall redovisas.
Gör uppgiften Marvin - steg 2 för att visa att du har koll på hur man kan strukturera sitt program genom att använda funktioner. Spara alla filer under src/kmom03/marvin2.
Resultat & Redovisning
Section titled “Resultat & Redovisning”Läs instruktionen om hur du skall redovisa.
Utöver en vanlig inlämning ska du också göra en Pull Request.
Som en del av din inlämning via GitHub svara på nedanstående frågor i din README.mdfil. Se till att du skriver om dina lärdomar och reflektioner. Vi vill inte läsa vad ChatGPT, Claude eller Copilot har för reflektioner, men vad ni har lärt er under veckan.
- Vad sker vid ett anrop av en funktion?
- Varför vill vi använda funktioner i vår kod?
- Har du fått förståelse för hur du kan paketera funktioner i moduler och hur du kan få tillgång till funktioner som finns i en modul?
- Vad har varit svårast respektive lättast i detta kmom?
- Vilken är din TIL för detta kmom?
TIL är en akronym för “Today I Learned” vilket leksamt anspelar på att det finns alltid nya saker att lära sig, varje dag. Man brukar lyfta upp saker man lärt sig och där man kanske hajade till lite extra över dess nyttighet eller enkelhet, eller så var det bara en ny lärdom för dagen som man vill notera.