Till KTH:s startsida Till KTH:s startsida

Labb 3

Laboration 3

Läs kapitel 4-5 och 7 i kursboken: Slumptal, for-slingan, strängar, listor, tupler, dictionary, 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: Skriv ett program som anordnar ett glosförhör.

Programmet ska

  • Läsa in glosorna från fil.
  • Skriva ut en lista med glosorna.
  • Ordna ett förhör med alla glosor och räkna antal rätta svar.
  • Skriva ut antal korrekta svar efter förhöret.

Körexempel:


	     Svenska    Setswana 
	     ====================
	     pumpa	lerotse
	     gröt       bogobe
	     kött       nama
	     spenat     morogo
	     fil        madila
	     kyckling   koko       
	     majs       mmidi      
	     bönor      dinawa     


	     Glosförhör
	     ==================
	     Vad betyder lerotse?
	       1. gröt 
	       2. spenat 
	       3. pumpa 
	     Svar: 3
	     .
	     .
	     .
	

Testning

Glöm inte att testa att ditt program fungerar som det ska. Spara dina testdata!

Krav

  • Programmet ska vara uppdelat i funktioner med lämpliga parametrar och returvärden.
  • Glosorna ska läsas in från fil.
  • Orden ska lagras i någon datastruktur (lista/tuppel/dictionary).
  • ... och dessutom följande krav från första och andra labben:
    • Programmet ska ha en kommentar överst med författarnas namn och datum.
    • Varje funktion ska ha en förklarande kommentar.
    • Inga globala variabler får förekomma (i funktionerna).
    • Variabelnamnen ska göra programmet lättare att förstå.
    • Testdata ska finnas med i kommentar sist i programmet.
    • Programfilen ska kopieras till gruppens Dropbox-katalog.

Instuderingsfrågor

  1. Vilka tre parametrar har range() ?
  2. Vad gör random-funktionen shuffle() ?
  3. Vad gör strängmetoden ljust() ?
  4. Vad är skillnaden mellan strängmetoderna split() och strip() ?
  5. Vad är index i en lista? Visa med ett exempel!
  6. Strängar och tupler är oföränderliga (immutable). Vad innebär det?
  7. Vad gör listmetoden append() ?
  8. Hur kan man använda en for-slinga för att skriva ut alla elementen i en lista?
  9. Hur skapar man en tom dictionary?
  10. Vad gör dictionary-metoden keys() ?
  11. Hur anger man om en textfil ska öppnas för läsning eller skrivning?
  12. Ge två olika förslag på hur man kan läsa in alla rader från en fil.

Efter labben

Hur tycker du att ditt eget arbete med labben fungerade? Borde du ha gjort något annorlunda? Fundera en stund, och skriv upp några tips till dig själv inför nästa labb!

Extrauppgifter (inte obligatoriska): 

  • Beräkna och skriv ut hur många procent rätt man fick.
  • Ge olika kommentarer beroende på andelen korrekta svar.
  • Låt användaren välja om hen vil bli förhörd på svenska eller setswana
  • Lägg till flera filer med glosor och låt användaren välja språk.