Ändringar mellan två versioner
Här visas ändringar i "Laboration 6" mellan 2016-02-22 11:09 av Linda Kann och 2016-02-22 11:27 av Linda Kann.
Visa nästa > ändring.
Laboration 6
Laboration 6 Läs om set och arv i kursboken, och repetera avsnittet om filer
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: Skapa en ny klass Definiera en egen klass Foodset som subklass till set
* Metoden __init__ behöver du inte definiera - den som redan finns i set kan användas.
* Metoden __str__ ska överlagras. Istället för utskriften {1, 2, 3} vill vi ha 1 2 3 dvs inga parenteser runt mängden och mellanslag istället för komma mellan elementen.
* Lägg också till en egen metod, t ex simple (True om antal element är mindre än 6)
* Testa att dina nya metoderna fungerar.
Uppgift 3: Läs in från fil
* Låt programmet läsa in data från filen ingredienser.txt
* För varje maträtt ska ingredienserna läggas in i ett Foodset-objekt...
* ...och maträtten och Foodset-objektet ska skrivas ut, så här:
Pannkakor innehåller vetemjöl gluten salt mjölk ägg smör mjölk¶ Rårakor innehåller potatis smör mjölk salt
...
Uppgift 4: Fråga användaren
* Lägg till en fråga till användaren om vad hen inte äter, till exempel så här
Vad är du allergisk mot? ägg gluten selleri
* Läs in svaret och skapa ett nytt Foodset-objekt.
* Skriv ut objektet så att du ser att det fungerar.
Uppgift 5: Skriv ut allergener
* Ändra utskriften från programmet så att det bara skriver ut allergenerna, alternativt texten "inga av dina allergener" Använd lämpliga set-operationer. Körexempel:
Vad är du allergisk mot? ägg gluten selleri
Pannkakor innehåller gluten ägg
Rårakor innehåller inga av dina allergener
...
Uppgift 6: Skriv ut på fil
* Öppna en ny fil för utskrift och låt programmet skriva ut all information på filen.
* Låt användaren välja filnamnet för utfilen. Körexempel:
Vad är du allergisk mot? ägg gluten selleri
Vilken fil vill du skriva ut på? matkoll.txt
Utskriften finns nu på filen matkoll.txt
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 6:
* Klassen Foodset ska vara subklass till set
* Foodset ska ha nya metoder enligt ovan.
* Programmet ska använda set-operationer för att kolla allergener.
* Programmet ska läsa in data från en fil och skriva ut på en annan fil.
* ... 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 Efter labben Frivilliga extrauppgifter: