Laboration 3: List, String och Dictionary
- Inlämningsdatum 3 nov 2024 av 12:00
- Poäng 1
- Lämnar in en filuppladdning
- Filtyper py, pdf och txt
- Tillgänglig efter 30 sep 2024 kl 0:00
Innehåll:
Datastrukturer och filer
Förberedelseuppgifter
Du kan göra experimenten nedan i ditt Shell-fönster. Dokumentera arbetet efter varje del genom att kopiera och klistra in i en fil, alternativt ta screenshot.
-
Lista
-
Skapa en lista med flyttal:
listan = [11.4, 8.0, 14.2, 0.9, 0.2, 10.7, 12.8, 3.7, 10.0, 7.9]
-
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
nylista = listan
listan[0] = -32.5
print(nylista) - Titta nu på Pythons inbyggda funktioner.
- Prova att använda funktionen 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.
Uppgift: Skriv ett program som anordnar ett glosförhör.
Programmet ska
- Läsa in glosorna från fil.
- Spara glosorna i en dictionary.
- Skriva ut glosorna.
- Ordna ett förhör med alla glosor och räkna antal korrekta svar.
- Skriva ut antal korrekta svar efter förhöret.
Programmet ska fungera på filer med olika antal glosor. Skapa en egen glosfil eller använd någon av följande:
koreanska_verb-1.txt Download koreanska_verb-1.txt | quechua.txt Download quechua.txt | persiska.txt Download persiska.txt |
Exempel på hur en programkörning 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
.
.
.
Tips från ChatGPT
Med prompten "Skriv ett program som anordnar ett glosförhör" gav ChatGPT följande lösning. Programmet går att köra, men fungerar inte riktigt som det var tänkt. Du får använda denna kod som hjälp (men du får inte be AI om en bättre lösning).
import random |
Testning
Glöm inte att testa att ditt program fungerar som det ska. Spara dina testkörningar (du kan klistra in dom sist i programfilen och kommentera bort dom).
Krav
Programmet ska
-
- Läsa in glosorna från fil.
- Spara glosorna i en dictionary.
- Skriva ut glosorna.
- Ordna ett förhör med alla glosor och räkna antal korrekta svar.
- Skriva ut antal korrekta svar efter förhöret.
... och dessutom uppfylla 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):
- Gör så att orden kommer i slumpmässig ordning.
-
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
Tidsfördelad repetition Links to an external site. innebär att man tränar glosorna med tidsintervall. 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:
|