Laboration 3: List, String och Dictionary
- Inlämningsdatum 4 nov 2022 av 18:00
- Poäng 1
- Lämnar in en filuppladdning
- Filtyper py, pdf och txt
Labb 3 är den mest omfattande labben hittills - planera fler timmar än vanligt för att göra klart den.
Innehåll:
- Python - kapitel 7, 8, 9.1 i kursboken: lista, sträng, dictionary, fil
Förberedelseuppgifter
-
Lista
-
Skapa en lista med tal:
listaA = [9, 17, 12, 20, 6, 8, 4, 19, 7, 18]
-
Läs om listmetoder i Pythons dokumentation: The Python Tutorial.
-
Testa tre listmetoder på din lista.
- Varför behövs metoden copy()? Använd Pythonvisualiserare till Python 3 för att undersöka vad som händer i tilldelningen
listaB = listaA
listaA[0] = -22 - Titta på Pythons inbyggda funktioner.
- Prova att använda max() för att hitta det största värdet i din lista.
- Metodanrop och funktionsanrop skrivs på olika sätt. Vad är skillnaden?
-
-
Sträng
- Läs om strängmetoder i Pythons dokumentation: The Python Standard Library
- Definiera följande sträng:
s = " Gå Du Axel Efter Håkans Fiskar "
- Prova metoden islower()
- Prova metoden strip()
- Prova metoden split()
-
Dictionary
- Läs om dictionary-metoder i Pythons dokumentation: The Python Standard Library
- Definiera följande dictionary:
setswana = {"kött": "nama", "kyckling": "koko", "fil": "madila", "pumpa": "lerotse", "majs": "mmidi", "spenat": "morogo", "bönor": "dinawa"}
- Prova metoden keys()
- Prova metoden values()
- Prova metoden items()
- Lägg till ordparet "gröt": "bogobe" i din dictionary.
Planera glosförhörsprogrammet
- Kan du använda funktionerna nedan för att bygga ett glosförhörsprogram? Skriv ner en plan (på papper eller i en fil) för hur du ska göra.
#Program 1: Funktion som gör om en sträng till en lista |
#Program 2: Från lista tilll dictionary def createDictionary(keylist,valuelist): |
#Program 3: Från fil till sträng |
Uppgift: Skriv ett program som anordnar ett glosförhör.
Programmet ska
- Läsa in glosorna från fil. Programmet ska fungera på filer med olika antal glosor, till exempel setswana.txt, Download setswana.txt, eesti.txt Download eesti.txt, japanska_frukter.txt Download japanska_frukter.txt, quechua.txt Download quechua.txt
- Spara glosorna i en datastruktur.
- 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.
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? pumpa
.
.
.
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.
- Programmet ska fungera med olika antal glosor.
- 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 lämnas in i Canvas (varje student ska lämna in varsin fil även om det är samma som den man jobbat tillsammans med).
Peer review
När det är 20 min kvar av labbtiden ska du lämna in ditt program i Canvas. Det behöver inte vara klart! Nu är det dags för Peer review. Du kommer att få granska någon annans uppgift med avseende på kraven i listan. Kontrollera om kraven är uppfyllda. Du kan också ge konstruktiv feedback och skriva uppmuntrande kommentarer.
Bägge gruppmedlemmarna ska lämna in labben.
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):
-
Ge användaren möjlighet att svara med val:
Glosförhör ==================
Vad betyder lerotse?
1. gröt
2. spenat
3. pumpa
Svar: 3 - Beräkna och skriv ut hur många procent rätt det blev..
- 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
Svårare extrauppgift 1
Ladda ner Duolingos Ukrainska parlör Links to an external site. som csv-fil. Låt användaren först välja katgori (t ex Family and Identity), och ordna sedan förhör på fraserna på samma sätt som för glosor.
Svårare extrauppgift 2
P. A. Wozniak experimenterade med att träna glosorna med olika tidsintervall (se SuperMemo) . Låt ditt program hålla reda på hur länge sen varje glosa övades så att du kan välja ut lämpliga glosor för dagen. Tips: modulen datetime.
Matris
Kriterier | Bedömningar |
---|---|
Hur fungerar glosförhöret?
|
|
Kan programmet hantera en en fil med okänt antal glosor?
|
|
Räknar programmet rätt antal korrekta svar?
|
|
Hur lagras glosorna?
|
|
Har varje funktion en förklarande kommentar?
|
|
Vilka parametrar har funktionerna? Vilka returvärden?
|
|
Finns det en kommentar överst i programmet med författarnas namn och datum?
|
|
Är variabelnamnen lämpliga? Föreslå förbättringar!
|
|
Finns testdata med som kommentar sist i programmet?
|
|
Tips till nästa labb:
|