Visa version
Visa
< föregående
|
nästa >
Jämför
< föregående
|
nästa >
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 befolkning 2012)
- 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...
- ... och skapa objekt som läggs i en lista.
- Kontrollera att inläsningen fungerat bra genom att skriva ut listan.
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:
Beräkna världens befolkning
Använd listan för att beräkna och skriva ut
- världens totala befolkningsmängd 1950
- världens totala befolkningsmängd 2012
Uppgift 6
Lägg upp ditt färdiga program i Dropbox
Testning
Glöm inte att testa att ditt program fungerar som det ska.
Krav
Krav för programmen i labb 5:
- Klassen ska ha metoderna ovan.
- Programmet ska läsa in data från en textfil och skapa objekt som läggs i en lista.
- Programmet ska gå igenom listan och beräkna total befolkningsmängd 1950 och 2012.
- ... 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 (samma som i läxa 4)
- Titta på filen worldpop.txt.
Vilka data innehåller filen? - De första fem raderna i filen är information om filens innehåll.
Skriv ett par satser som läser in enbart dessa fem rader från filen. - Resten av raderna i filen innehåller data.
Hur ska man läsa in dessa rader? - En rad innehåller data åtskilda av "/". Föreslå en strängmetod som delar upp raden vid varje "/" och visa hur man anropar den.
- Vilken datatyp returnerar strängmetoden ovan?
- Titta på första dataraden i filen: "Afghanistan/AF/4/8151/33397"
Rita (gärna för hand) ett objekt med dessa data. - Hitta på namn för de attribut du ritat i objektet ovan.
- Vilka metoder skulle passa bra i den klass som representerar ditt objekt?
Ge minst tre förslag. - Måste man definiera flera klasser om man vill ha flera objekt i ett program?
- Vilken listmetod kan man använda för att lägga till ett element i en lista?
Visa hur den anropas! - Rita en lista med tre objekt (data från tre länder).
- Visa hur man med hjälp av en slinga kan skriva ut data för alla objekt i listan.
Efter labben
Nu har du arbetat ett tag med din nya labbkompis. Hur tycker du att arbetet fungerar?
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.