Pythonuppgifter 3.1 - Dictionaries
Att lära dig från uppgifterna
- lägga till nyckel-värde-par till ett dictionary
- slå upp värde i ett dictionary med hjälp av nyckel
- ändra värde för en nyckel i ett dictionary
Godkänt
För att få godkänt krävs 100 poäng. Försök dock att lösa alla uppgifter då inte alla fel upptäcks av rättningsskriptet men om ni har lite marginal kan ni kanske bli godkända även om assistenten som rättar hittar något sådant fel.
Uppgifter
Uppgift 3.1.1 (10p)
Skriv funktionen key_exists(key, d)
som tar in ett dictionary och returnerar
True
om nyckeln key
finns bland dictionaryts nycklar. Annars returneras
False
.
Tips: Använd operatorn in
.
Uppgift 3.1.2 (10p)
Skriv funktionen value_exists1(value, d)
som tar in ett dictionary och
returnerar True
om värdet value
finns bland dictionaryts värden.
Returnera False
om det inte finns.
Anta att dictionaryt bara innehåller siffror eller strängar.
Tips: Använd operatorn in
eller en . (Om ni redan löst uppgiften med for
-loopfor
är det ok i år, givet att ni loopar över rätt sak.)
Uppgift 3.1.3 (10p)
Skriv funktionen add_to_dict(key, value, d)
som lägger till värdet value
till dictionaryt d
. Du behöver inte bry dig om värdet eller nyckeln redan
finns. Funktionen behöver inte returnera dictionaryt.
Uppgift 3.1.4 (10p)
Skriv funktionen add_new_only_to_dict(key, value, d)
som lägger till värdet
value
till dictionaryt d
fast bara om nyckeln key
inte finns i
dictionaryt. Funktionen behöver inte returnera dictionaryt.
Uppgift 3.1.5 (20p)
Skriv funktionen increment_dictionary_value1(key, d)
som tar in ett dictionary
vars värden är heltal eller flyttal (du behöver inte kontrollera detta). Nyckeln
key
kommer att finnas i dictionaryt. Funktionen ska lägga till 1 till värdet
som tillhör nyckeln key
. Funktionen behöver inte returnera dictionaryt.
Uppgift 3.1.6 (20p)
Skriv funktionen increment_dictionary_value2(key, d)
som tar in ett dictionary
vars värden är heltal eller flyttal (du behöver inte kontrollera detta). Om
nyckeln key
finns i dictionaryt ska du öka dess värde med 1. Om nyckeln inte
finns i dictionaryt ska nyckeln läggas till och dess värde sättas till 1.
Funktionen behöver inte returnera dictionaryt.
Uppgift 3.1.7 (20p)
Skriv funktionen add_to_value_list1(key, value, d)
som tar in ett nyckel, ett
värde och ett dictionary. Värdena i dictionaryt kommer att vara listor (du
behöver inte kontrollera detta) och den angivna nyckeln kommer att finnas.
Värdet ska läggas till till listan som tillhör nyckeln key
i dictionaryt.
Funktionen behöver inte returnera dictionaryt.
Uppgift 3.1.8 (10p)
Skriv funktionen return_value_list1(prefix, d)
som tar in en sträng och ett
dictionary. Funktionen ska returnera en lista som innehåller alla värden som
tillhör nycklar som börjar på strängen prefix
. Alla nycklar kommer att vara
strängar i dictionaryt.
Uppgift 3.1.9 (20p)
Skriv funktionen value_exists2(value, d)
som tar in ett dictionary och
returnerar True
om värdet value
finns bland dictionaryts värden.
Returnera False
om det inte finns.
Dictionaryts värden ska kunna vara siffror, strängar eller icke-nästlade listor.
Funktionen ska även leta efter värdet value
i eventuella listor. Om vi letar
efter värdet 'hejsan'
i dictionaryt
|
|
så ska funktionen returnera True
Använda rättningsskriptet
OBS! Rättningsskriptet kan bara användas från LiUs Linux-miljö, dvs när du antingen är inloggad via ThinLinc, har anslutit via VSCodes RemoteSSH, inloggad på en dator i en Linux-sal via RDP, eller inloggad på en faktisk Linux-dator i en Linux-sal på Campus.
Du kan bara köra rättningsskriptet för en specifik uppgift (t.ex. Pythonuppgifter 1.2) en gång var åttonde minut. Detta är för att ni även behöver lära er hur ni testar er egen kod; ni ska inte vara beroende av att det finns ett rättningskript som hjälper er.
För att rätta din fil skriver du nedanstående ($
skrivs inte utan
representerar prompten i terminalen):
|
|
- Ersätt
<uppgift>
med den uppgift koden löser, t.ex.1_1
för att rätta Pythonuppgifter 1.1,1_2
för Pythonuppgifter 1.2,2_3
för Pythonuppgifter 2.3, osv. - Ersätt
<kodfil>
med namnet på filen som innehåller din kod. - OBS! Du måste stå i samma katalog som filen som du vill rätta.
- OBS! Du får inte döpa din kodfil till ett namn med en punkt i filnamnet (dvs utöver punkten innan ändelsen
py
.pyuppg1.1.py
fungerar alltså inte.
Exempel
Exempel för Pythonuppgifter 1.1 om filen med dina lösningar är döpt till pythonuppg1_1.py
|
|
Exempel för Pythonuppgifter 2.3 om filen med dina lösningar är döpt till pyuppg23.py
|
|
Resultat från rättningsskriptet
Rättningsskriptet kommer berätta för dig vilka uppgifter som är godkända, vilka som inte är godkända och vilka som inte hittades. Rättningsskriptet berättar också hur många poäng du fått.
När du kör rättningsskriptet kommer du få en utskrift i terminalen som liknar den nedan.
OBS! Rättningsskriptet undersöker bara hur många och vilka uppgifter du löst och vilka du inte löst. Du kommer själv behöva felsöka eventuella fel genom att lägga till t.ex. spårutskrifter för att testa koden medan du skriver den.
Exempelutskrift från körning av rättningsskriptet
#### POÄNG (100 poäng behövs för GODKÄND UPPG) ####
UPPG 1.1: 5 poäng.
UPPG 1.2: 5 poäng.
UPPG 1.3: 5 poäng.
UPPG 1.4: 5 poäng.
UPPG 1.5: 10 poäng.
UPPG 1.7: 10 poäng.
UPPG 1.8: 10 poäng.
UPPG 1.9: 10 poäng.
UPPG 1.10b: 5 poäng.
UPPG 1.11: 15 poäng.
UPPG 1.12: 15 poäng.
#### SAKNADE UPPGIFTER ####
Kontrollera stavning på din funktioner. Stora och små
bokstäver spelar roll.
UPPG 1.10a saknar funktion: 'first_in_list'
UPPG 1.10c saknar funktion: 'last_in_list'
#### FEL vid TEST ####
Felsök genom att ha testanrop längst ner i din kodfil och
skriv ut resultaten. Kontrollera också så att du har mellanrum
på rätt ställe och att stora/små bokstäver stämmer överrens.
UPPG 1.6: Fel påträffades.
#### ANTAL POÄNG: 95
#### Du är INTE godkänd på Pythonuppgifter 1.
#### 5 poäng saknas.
Skicka in rättningskod
Om uppgiften är godkänd så hittar du även ett stycke med en rättningskod. Den innehåller bl.a.:
- din kod
- hur många poäng din kod fick
Kopiera rättningskoden (se exempel nedan) och klistra in den i en textfil; en fil för varje rättningskod. För Pythonuppgifter 1 kommer du lämna in 3 filer. Döp dem till pyuppg1_1.txt
, pyuppg1_2.txt
och pyuppg1_3.txt
. Motsvarande gäller för Pythonuppgifter 2 och 3.
------------------------ KOPIERA FRÅN RADEN UNDER DENNA ------------------------
dXBwZzEvaW5mby50eHRVVAkAAz99zVc/fc1XdXgLAAEE9QEAAAQUAAAABcHLEcIgEADQO1VsA3FY
zVd1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAiIElSZnJPKxkAAAAcgAAABgAHABqb2RmbzAxLXB5
AjhLN2E/iophTDike9+T7dQCwWNePC0+AeaCoWBy89Bfgdcutnt01j4K/FR+qxQY1xzjgbdxud6+
AGpvZGZvMDEtcHl1cHBnMS9taW5pZmllZC5weVVUCQADP33NVz99zVd1eAsAAQT1AQAABBQAAACN
UEsDBAoAAAAAAIiBJUkAAAAAAAAAAAAAAAAQABwAam9kZm8wMS1weXVwcGcxL1VUCQADP33NVz99
kstugzAQRfd8hUU3pCGhRMomUlb9jLayDIzBjbEte4iavy/YPEJaqV0gM3fO3Bk/RGu0RWKZqnQb
VcCJBeysolxcIdmcojEm8SDEnjBWKFwAHyYhv/EAqyrqsJdrt7Jo4DPexo6p4NM5oNgAvTLrsSuT
HZyPM+/j5+OKZbZO2Gi+NJ+VuXZSVsVSKCgssMtqKssqkr+rYTmEwVxXoGUlJn6CPPXL4a4m6Lug
hxIjBdJCSJmwVncKU9W1BViqOTWgjYS78kBkj4Q3KrUqGYLqv/kMXZ66+/Yu37rQlgvrkArVb82N
47rHOd3by0eYEXrz6k86D7Rk/3De5ZO1hBJpeEY/6aDvy0aLEqa0L6xBgR32avQFWq2oYi0kxgIX
X+BS13H/E656EM/rVhPZ33xgH/KzQUQG5/Nvxxs8xl7LExr46Im89g8GoSLFjZhbK5TgAixJGkTj
TllWC2y6Yl/qNpOCo+Y8W7BN9A1QSwMEFAAAAAgAiIElSclUPoaqAAAAqAEAAB8AHABqb2RmbzAx
zZoKdEnH7GDmmeo9xVhT5JpzNVmFaOPAK6G5P1BLAwQUAAAACACIgSVJoN99PmsBAABgAwAAGwAc
LXB5dXBwZzEvcHl1cHBnMXRlc3QubG9nVVQJAAM/fc1XP33NV3V4CwABBPUBAAAEFAAAAOPiUgYC
hQD/wy1+7goahgYGCgX5h5fkpSskpWYc3lZWrJB2eFuRgru/izdQhYtCaECAu6YCSA8XF4itYKhn
aKVgCtWkBxMzwiJmjEXMBIuYqZWCoQG6oBk2QXNsghbYBC2xCRoaJGKx3tAgCatoMjZRoN8NMUWN
CgAAAAAAiIElSQAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BAAAAAGpvZGZvMDEtcHl1cHBnMS9V
VAUAAz99zVd1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACACIgSVJmck8rGQAAAByAAAAGAAYAAAA
AAAAUEsBAh4DFAAAAAgAiIElSaDffT5rAQAAYAMAABsAGAAAAAAAAQAAAKSBAAEAAGpvZGZvMDEt
AAABAAAApIFKAAAAam9kZm8wMS1weXVwcGcxL2luZm8udHh0VVQFAAM/fc1XdXgLAAEE9QEAAAQU
UEQhIezoF+LoAw1noLShKUTYpVTh8BKk8C04vFQhoLIkIz+vtKAgPTOtRMFQkUtBgQsAUEsBAh4D
JUnJVD6GqgAAAKgBAAAfABgAAAAAAAEAAACkgcACAABqb2RmbzAxLXB5dXBwZzEvcHl1cHBnMXRl
cHl1cHBnMS9taW5pZmllZC5weVVUBQADP33NV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAIiB
c3QubG9nVVQFAAM/fc1XdXgLAAEE9QEAAAQUAAAAUEsFBgAAAAAEAAQAegEAAMMDAAAAAA==
------------------------- KOPIERA T.O.M. RADEN OVANFÖR -------------------------
(OBS! Ovanstående rättningskod är ogiltig).
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2023-01-15