Till KTH:s startsida Till KTH:s startsida

Laboration 3

Laboration 3

Innehåll: 

  • Kapitel 7, 8, 9.1 i kursboken: strängar, listor, tupler, dictionary, enkel inläsning från fil.

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.

Förbered dig genom att göra läxan!

Uppgift: Skriv ett program som anordnar ett glosförhör.

Programmet ska

  1. Läsa in glosorna från fil (ska fungera på filer med olika antal glosor). Exempel: setswana.txteesti.txt
  2. Spara glosorna i en datastruktur.
  3. Skriva ut en lista med glosorna.
  4. Ordna ett förhör med alla glosor och räkna antal rätta svar.
  5. Skriva ut antal korrekta svar efter förhöret.

Exempel på hur det skulle kunna se ut:


	     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 testkörningar!

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 eller 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. Vilken funktion beräknar längden av en sträng?
  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 ord på flera språk och låt användaren välja vad hen vill öva på. exempelfil