Pythonuppgifter
Till Tema 1-3 hör det ett antal mindre pythonuppgifter.
Syftet med att göra dessa är ni ska lära er hur nya konstruktioner i Python fungerar och den syntax de använder. Dessa uppgifter lämnas in enskilt. Det går bra att samarbeta och diskutera kring uppgifterna men alla ska skriva sin egna pythonkod. Kan man inte lösa Pythonuppgifterna på egen hand efter Tema 3 kommer man inte att klara duggan. Godkänt betyg på duggan krävs för godkänt betyg på kursen. (Det finns såklart chans till omdugga, men Tema 4-6 bygger på antagandet att man är någorlunda trygg med grunderna.)
Du kan när som helst använda rättningsskripten för att få uppgifterna rättade (dock med 8 minuter “cooldown” mellan varje rättning av en viss del, så slösa inte med rättningarna om du vet att du inte fixat alla fel än). När du samlat ihop tillräckligt med poäng får du en kod utskriven i terminalen. Spara koden i en fil. Filerna med koderna för pythonuppgifter 1.1-1.3 lämnas in som en gemensam inlämning i Sendlab. Be en assistent om hjälp ifall du är osäker.
Det är lämpligt att lösa några uppgifter mer än vad som krävs för att få tillräckligt med poäng av rättningsskriptet. Skriptet fångar inte alla möjliga fel och en assistent kommer att dubbelkolla dina lösningar, har du marginal kan du slippa en onödig komplettering pga slarvfel på en enstaka uppgift.
Förberedelser
Nedanstående kod kan du använda som en utgångspunkt när du ska skriva din egen kod.
Tecknet #
i början av en rad gör att pythontolken struntar i just den raden.
På så sätt kan du skriva egna kommentarer. Kommentera hellre för mycket än för
lite!
|
|
Prova att köra ovanstående kod som du skrivit in i en textil med namnet, exempelvis, pyuppg11.py
från terminalen:
|
|
Lycka till med uppgifterna!
Rättningsskriptet
Rättningsskriptet används när du gör Pythonuppgifter 1-3. Skriptet testar koden du skrivit, berättar för dig vilka uppgifter du eventuellt gjort fel på och räknar ut din totala poäng. Du får också reda på vilka uppgifter som saknas.
Om du samlat ihop tillräckligt många poäng får du även en rättningskod utskriven i terminalen som du klistrar in i en textfil som sedan lämnas in via Sendlab.
För att köra rättningsskriptet behöver du sitta i en Linux-datasal, eller vara inloggad via ThinLinc eller RDP.
Automaträttning av en viss del (t.ex. 1.2 eller 1.3) kan endast göras med 15 8 minuters mellanrum. Timern är per del, du behöver t.ex. inte vänta 15 8 minuter efter att du rättat 1.2 innan du kan rätta 1.3.
Innan du kör automaträttningen ska du testa din kod på egen hand. Du kan testa din kod t.ex. genom att
- lägga till testanrop vars returvärde skrivs ut i längst ner i din pythonfil
- göra interaktiva anrop till dina funktioner via pythontolken; kör antingen
python3
elleripython3
med flaggan-i
, t.ex.ipython3 pyuppg11.py
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, inloggad på en dator i en Linux-sal via RDP, eller inloggad på en faktisk Linux-dator i en Linux-sal på Campus.
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 pythonuppgift 1.1,1_2
för pythonuppgift 1.2,2_3
för pythonuppgift 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 Pythonuppgift 1.1 om filen med dina lösningar är döpt till pythonuppg1_1.py
|
|
Exempel för Pythonuppgift 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 testa 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å Pythonuppgift 1.
#### 5 poäng saknas.
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 Pythonuppgift 1 kommer du lämna in 3 filer. Döp dem till t.ex. pyuppg11.txt
, pyuppg12.txt
och pyuppg13.txt
.
------------------------ 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
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: 2024-07-26