Kmom04: Funktioner och moduler

By . Latest revision .

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.

Marvin skall nu lära sig lite mer och få en bättre struktur.

(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)

#Läsanvisningar

(ca: 4-6 studietimmar)

#Kurslitteratur

Läs följande:

  1. Python for Everybody: Exploring data in Python3
    • Ch4 Functions

#Artiklar

Det finns inga artiklar.

#Video

Titta på följande:

  1. Videoserien Lär dig Python är tätt kopplat till kursmaterialet. Kika på de videor som börjar med 4.

  2. De videor som följer med och kompletterar kurslitteraturen.

#Lästips

  1. Think Python: How to Think Like a Computer Scientist
    • App A Debugging

#Övningar & Uppgifter

(ca: 12-16 studietimmar)

#Övningar

Genomför övningarna för att träna inför uppgifterna.

  1. 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 me/kmom04/functions.

  2. Jobba igenom övningen “LEGB regeln och scopes i Python” som handlar hur python hanterar scope och vart variabler är tillgängliga. De exempelprogram du gör kan du spara i ditt kursrepo under me/kmom04/functions

  3. 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/kmom04/functions då koden bygger på förra övningen.

  4. Fortsätt med del 4 och 5 i “Debugger i Python” för att lära dig felsöka och förstå din kod med debuggern. Alternativ fortsätt använda Thonny, det är som en grafisk debugger.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Gör uppgiften “Python med funktioner och moduler” för att träna på olika typer av funktioner, med och utan argument. Spara alla filer under me/kmom04/lab4.

  2. Gör uppgiften “Din egen chattbot - Marvin - steg 3” för att träna på strukturering av dina program. Spara alla filer under me/kmom04/marvin3.

#Extra

Det finns inga extra uppgifter.

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Läs instruktionen om hur du skall redovisa.

Se till att följande frågor besvaras i redovisningstexten.

  • Har du programmerat med funktioner tidigare?
  • Hur kan du använda funktioner när du programmerar?
  • Du har gjort din första modul i Python, känns strukturen bra?
  • Hur kan du använda moduler?
  • Vad tyckte du om de olika uppgifterna?
  • Hur tänkte du när du utförde dem?
  • Gjorde du någon av extrauppgifterna? Berätta om det arbetet i så fall.

#Revision history

  • 2020-09-04: (J, aar) Släppt för HT20.
  • 2020-05-15: (I, aar) Flyttade Funktioner från 03 till 04 inför V3 HT20.
  • 2018-06-18: (H, aar) Flyttade moduler till kmom04.
  • 2018-06-08: (prel, mos) Nytt dokument inför uppdatering av kursen.
  • 2017-06-14: (G, efo) Ändrade kursliteratur till funktioner i kmom03, la till övningar.
  • 2016-03-15: (F, mos) Tog bort videoserie MonkeyLords och NewBoston.
  • 2016-02-22: (E, mos) Lade till videoserien “Lär dig Python”.
  • 2015-01-08: (D, mos) Bort blå ruta med kursutveckling pågår.
  • 2014-10-01: (C, mos) Ändrade länken till redovisa-instruktionen.
  • 2014-09-08: (B, mos) Första publika releasen.
  • 2014-08-27: (A, mos) Första utgåvan för python kursen.

Document source.