Laboration 5
Laboration 5
Repetera strängmetoder, listmetoder, filer och objekt i kursboken.
Labben redovisas på veckans övning. Det Pythonprogram du skriver kan ge 0-2 bonuspoäng (beroende på hur väl det uppfyller kraven).
Instuderingsfrågorna redovisas med ett prov, som också kan ge max 2 bonuspoäng.
Uppgift 1: Läxa
Uppgift 2
Modifiera klassen du skrev i läxan med fler metoder
- Metoden __init__ har du förstås redan definierat
- Lägg till metoden __str__ (ska visa alla attributens värden)
- Lägg till metoden __lt__ (ska jämföra objekten m a p medianålder år 2015)
- Lägg till en metod som returnerar den lägsta medianåldern för landet.
- Lägg till en metod som returnerar den högsta medianåldern för landet.
- Skapa två objekt och testa att metoderna fungerar.
Uppgift 3
Skapa en lista med objekt
- Låt programmet läsa in data från textfilen median_age.csv
- Läs in alla data från filen och skapa objekt för varje rad. Lägg in varje objekt i en lista. Provkör!
- Gör en slinga som skriver ut data för alla objekt i listan. Provkör!
Uppgift 4
Sortera listan
- Läs om sort-metoden i avsnittet Lists i Pythons dokumentation.
- Sortera listan.
- Kontrollera att sorteringen fungerat bra genom att skriva ut listan.
Uppgift 5
Högst medianålder
Skriv en funktion som går igenom listan och tar reda på vilket land som har den högsta medianåldern.
Uppgift 6
Testa att ditt program fungerar som det ska.
Lägg upp ditt färdiga program i Dropbox
Krav
Krav för programmen i labb 5:
- Klassen ska ha metoderna enligt ovan.
- Programmet ska läsa in data från en textfil och skapa objekt som läggs i en lista.
- Programmet ska sortera listan.
- Programmet ska kunna hitta det land som har högst medianålder
- ... och dessutom ska programmet uppfylla följande krav från tidigare labbar:
- Programmet ska ha en kommentar överst med författarnas namn och datum.
- Programmet ska vara uppdelat i funktioner med lämpliga parametrar och returvärden.
- Varje funktion/metod ska ha en förklarande kommentar.
- Inga globala variabler får förekomma (i funktioner eller metoder).
- Variabel-/funktions-/attribut-namn ska göra programmet lättare att förstå.
- Klasser och funktioner ska stå överst i programfilen, övriga satser ska stå längst ner (blanda inte).
- Testdata ska finnas med i kommentar sist i programmet.
- Programfilen ska kopieras till gruppens Dropbox-katalog.
Instuderingsfrågor
- Hur namnger man ett privat attribut?
- Var i programmet kan man komma åt privata attribut?
- Vad gör en åtkomstmetod (accessor)?
- Vad gör en ändringsmetod (modifier)?
- Visa ett exempel på en nästlad for-slinga.
- Är det den yttre eller inre slingan som går runt flest varv i en nästlad slinga?
- Vad ska metoden __lt__ kunna göra?
- Hur definierar man en metod så att två objekt kan interagera?
- Visa hur man med hjälp av en slinga kan skriva ut data för alla objekt i en lista.
- Hur skriver man för att klass A ska ärva från klass B?
- Vad är relationen mellan en superklass och en subklass?
- Vad ärvs?
Efter labben
Nu har du arbetat ett tag med din nya labbkompis. Hur ofta byter ni roller?
Frivilliga extrauppgifter:
- Lägg till en meny där användaren kan välja vad hen vill göra.
- Skriv ut objekten på fil igen när programmet avslutas.
- Se till att programmet inte kraschar för felaktig inmatning.