Temauppgift 1
Temauppgift 1 består av tre delar som är utformade för att introducera kurshemsidan samt täcka grunderna i hur man använder terminalen och skapar pythonprogram. För att lösa uppgifterna kommer du behöva söka efter information på nätet. Gör Temauppgift 1 innan du börjar med Pythonuppgifter 1.
Temauppgift 1 och Pythonuppgifter 1 görs individuellt
- Del 1: Terminal och kommandon.
- Del 2: Bekanta dig med kurshemsidan.
- Del 3: Pythonprogram. Introduktion till hur man skriver och kör pythonfiler.
Lärandemål
Efter Temauppgift 1 ska ni:
- Vara bekanta med kurshemsidan och veta var ni hittar relevant information.
- Förstå hur ett hierarkiskt filsystem baserat på en katalogstruktur fungerar samt vad absoluta respektive relativa sökvägar innebär.
- Kunna använda skalkommandon för att navigera runt i en katalogstruktur och utföra enklare filhantering.
- Kunna köra pythonprogram med hjälp av skalkommandon.
- Starta Thonny, skapa och spara filer, samt köra dem.
Del 1: Terminalanvändning, textfiler och texteditorer
Största delen av tiden du använder för denna temauppgift kommer att gå åt till att söka information om kommandon som du behöver använda för att genomföra uppgifterna.
I framtida temauppgifter kommer du behöva använda det du lär dig i denna temauppgift och efter att ha gjort denna temauppgift är det meningen att du ska kunna terminologin och kommandona du använt, samt veta hur du ska söka på webben för att hitta den information du behöver.
Söktips
I denna kurs använder vi LiUs Linux-miljö där Linuxdistributionen Ubuntu används. För att få bättre träffar när du söker information kan du därför lägga till ordet “linux” till din sökning. Andra ord som kan ge bättre resultat är “tutorial”, “guide”, “documentation”, “manual”, “beginner”
I många instruktioner kommer ni stöta på instruktioner om att skriva något i terminalen och text i stil med
$ ls
Tecknet $
ska inte skrivas in utan är där för att visa att kommandot ska
skrivas vid en interaktiv prompt.
Kommandohjälp i terminalen
I terminalen kan du använda kommandot man
som visar manualsidor för kommandon.
Skriv man
följt av det kommando du vill se manualsidorna för. Om du t.ex. vill
se manualsidorna för kommandot ls
skriver du
$ man ls
För att avsluta visning av manualsidan trycker du på tangenten q
på
tangentbordet.
De flesta kommandon har en inbyggd hjälptext som man kommer åt genom att ange
flaggan -h
eller --help
, t.ex.
$ man --help
Instruktioner: Del 1
I Del 1 av temauppgiften kommer du göra följande
- Skapa en katalog i din hemkatalog.
- Kopiera en angiven fil från kurskatalogen till er skapade katalog.
- Döp om filen.
- Ändra rättigheter på filen så att den går att köra.
- Redigera filen.
All navigering och kopiering av filer ska göras i terminalen
I nedanstående instruktioner nämns olika användbara kommandon som du kan använda i terminalen (i skalet, inte i den interaktiva Python-tolken). Du ska vet vad alla kommandona gör och när de är användbara.
Uppdatering 2022-08-26: Det finns en tipssida för terminalen där du t.ex. hittar hur du bläddrar bland tidigare kommandon och använder autocomplete för att slippa manuellt skriva filnamn m.m.
Steg 1: Skapa en katalog i din hemkatalog
Öppna ett terminalfönster. Skapa sedan katalogen (synonym: mapp) 729G46
i din hemkatalog med underkatalogen temauppgift1
där du lägger de filer som du jobbar med i denna uppgift.
- Användbara kommandon:
ls
,cd
,mkdir
,pwd
- Relevant terminologi och notation: underkatalog, föräldrakatalog,
/
,..
,../
,./
,.
,~
,~/
,../../
Att lära dig i detta steg
- vad en absolut sökväg
- vad en relativ sökväg är
- kunna ange den absoluta och relativa sökvägen för vilken katalog eller fil som helst
- förstå och kunna tillämpa terminologin och notationen ovan
Steg 2: Kopiera fil från kurskatalogen
I kurskatalogen (/courses/729G46
) kan du hitta katalogen
kursmaterial/temauppg1
. I denna katalog finns olika filer i olika kataloger.
Katalogernas och filernas namn har ingen betydelse för uppgiften. Din uppgift är
att hitta den fil vars innehåll börjar med följande rader:
#!/bin/bash
# Rader som börjar med ett # tolkas som kommentarer
och slutar med följande rad:
# Du har nu hittat rätt fil.
Kopiera den filen till den katalog som du skapade i det tidigare steget.
Användbara kommandon: head
, tail
, cat
, less
, grep
, cp
Att lära dig i detta steg
- titta på innehållet i en fil från terminalen
- kunna ange sökvägen till en fil att titta i som inte ligger i den katalog du står i
- kunna kopiera en fil från en katalog (även en katalog som du inte står i) till vilken annan katalog som helst
Steg 3: Byt namn på filen
Döp om filen du kopierade till mitt_skript.sh
. I Unix finns det inget
“döp om”-kommando utan man använder kommandot mv
, som även används för att
flytta filer och kataloger.
Att lära dig i detta steg
- kunna flytta/döpa om en fil från en katalog (även en katalog som du inte står i) till vilken annan katalog som helst
Steg 4: Filrättigheter
Efter att du döpt om filen, prova att skriva namnet på filen som ett kommando i terminalprompten och se vad som händer, dvs
$ mitt_skript.sh
Prova sedan att skriva
$ ./mitt_skript.sh
Vad händer nu?
I ett vanligt Linux-system brukar filer inte vara exekverbara. Att en fil är exekverbar betyder att användaren har rätta att köra den (som ett kommando). Den lösning för fillager som vi har idag på LiU har dock konsekvensen att alla filer är körbara. För att kunna köra filen och använda den som ett kommando behöver du ha exekveringsrättigheter till den.
- Ta reda på hur du kan använda kommandot
ls
för att se vilka filrättigheter som gäller för en fil. - Ta reda på hur du använder kommandot
chmod
för att ta bort dina egna rättigheter att köra filenmitt_skript.sh
och gör det. - Ta reda på hur du använder kommandot
chmod
för att ta bort dina egna läsrättigheter tillmitt_skript.sh
. Gör det och försök att visa innehållet i filen i terminalen.
Steg 5: Redigera mitt_skript.sh i Thonny
Det finns många olika texteditorer och de har alla för- och nackdelar. I denna kurs kommer vi använda Thonny för Python i Tema 1-3.
Efter att ha gjort lektionsövningarna bör du redan ha startat och använt Thonny. Du kan hitta mer information om Thonny här.
Starta Thonny och öppna sedan filen du kopierade och bytte namn på och följ instruktionerna i filen. När du är färdig kan du gå vidare till Del 2.
Del 2: Kurshemsidan
Kurshemsidan är den primära informationskanalen för kursen och här finns all information om kursen samlad inkl. allt kursmaterial. Därför är det viktigt att du bekantar dig lite med kurshemsidan. För att göra det ska du svara på frågorna nedan. Skapa en ny textfil i Thonny som du döper till <liuid>-temauppg1.txt
. I den filen skriver du svaren på frågorna nedan. OBS! Thonny sparar inte automatiskt din fil utan du måste komma ihåg att spara dina ändringar.
- Bekanta dig med menyn och de olika avsnitten och länkarna.
- Vilka länkar i menyn leder bort från kurshemsidan? Ge minst två exempel.
- Öppna kurshemsidan både från en dator och från en telefon. Vad är skillnaden? Ge minst ett exempel.
- Läs sidan Kursinformation som du hittar längst upp i menyn.
- Vad är skillnaden mellan föreläsningar och lektioner?
- Vilken kurslitteratur behöver man inte köpa utan kan läsa gratis på webben?
- Läs sidan Examination & Deadlines.
- Hur många examinationsmoment har kursen och vad heter de?
- Vilket datum kan du tidigast respektive senast anmäla dig till det första duggatillfället?
- Vilka examinationsmoment krävs att man fått Väl godkänt på för att få betyget Väl godkänt på hela kursen?
- Läs sidorna Redovisning av Temauppgifter och Inlämningar under avsnittet Kurslogistik.
- Hur många filer ska lämnas in samtidigt för Pythonuppgifter 1?
- Vilka typer av uppgifter ska lämnas in i Sendlab respektive Lisam?
- Vad måste man göra innan man får lämna in en temauppgift?
- Läs sidan Seminarier & Rapporter under avsnittet Kurslogistik.
- Vad måste man göra för att få delta på ett Begreppsseminarium?
- Läs sidan Pythonuppgifter under avsnittet Kurslogistik.
- Hur länge måste man vänta efter att man rättat Pythonuppgift 1.1 med rättningsskriptet innan man kan köra skriptet för att rätta Pythonuppgift 1.1 igen?
- Hur länge måste man vänta för att istället köra skriptet för att rätta Pythonuppgift 1.2?
När du besvarat alla frågor så kom ihåg att spara filen, sedan kan du gå vidare till Del 3.
Del 3: Python
Nu när du kan köra kommandon i terminalen, kopiera och redigera filer, så är du redo att skriva pythonkod. Målet med denna del är att du ska få bekanta dig med att köra och testa pythonkod. Själva uppgifterna som ska genomföras är väldigt enkla, och kommer med några övningsfrågor som ska hjälpa er tänka på underliggande koncept, och vara ledande i att resonera och experimentera med kod.
Steg 1: Hello world!
En pythonfil är textfil med pythonkod och filändelsen .py
. Spara följande text
i en fil och döp den till hello.py
.
|
|
Kör filen genom att skriva python3 hello.py
i terminalen. Detta bör skriva ut strängen Hello world!
i terminalen.
Övningsfrågor
- Vad är
say_hello
för något? - Vad gör sista raden? Vad gör programmet om ni tar bort den? Vad händer om ni skriver den en gång till, och varför?
- Prova ändra ordet
print
tillreturn
isay_hello
. Vad innebär detta? Vad mer behöver ni ändra för att programmet ska skriva ut rätt? - Vilka andra delar av koden går att ändra utan att programmet krashar.
Steg 2: Interaktiv tolk
Ett annat sätt att köra pythonkod på är att använda en s.k. interaktiv tolk. Skriv bara python3
i terminalen så kommer ni in i pythons interaktiva läge. Här tolkas varje rad som pythonkod skilt för sig.
Testa skriva olika pythonuttryck i tolken och notera vad som händer. Några exempel:
5 + 3
print("hello")
x = 2
print(x)
x
Experimentera och testa så många olika saker som ni kan komma på. När ni är klara, avsluta tolken genom att trycka Ctrl + D
eller skriv quit()
. Det finns även en alternativ variant av tolken, ipython3
, som fungerar som standardtolken, men med en del extra funktionalitet för att den ska vara smidigare att använda. Öppna ipython3
och testa skriva liknande uttryck som ni gjorde i standardtolken. Vilka skillnader kan ni se mellan tolkarna?
Det går även att köra filer interaktivt. Kör filen ni sparade tidigare med python3 -i hello.py
eller ipython3 -i hello.py
.
Här har ni tillgång till det som definierats i filen. Utan att lämna detta interaktiva läge, ta reda på följande:
- Resultatet av att kalla på
mult
-funktionen. - Värdet på
x
ochy
. Är det någon skillnad mellan hur variablerna beter sig? - Tilldela
x
ett annat värde och kalla påmult
igen. Har resultatet ändrats? Gör detsamma medy
. - Definiera en ny funktion för att addera två värden.
- Redigera filen för att ge
y
ett nytt värde. Påverkar detta resultatet avmult
? - Avsluta tolken och starta upp den igen. Vad har ändrats? T.ex vad har x och y för värde? Finns er nya funktion fortfarande?
- Kör följande uttryck och försök förutspå vad som kommer att hända (De kan ge felmeddelanden!):
x = mult()
x = mult() + 5
x = "hej"
mult()
mult = "hej"
mult()
help(print)
(tryckq
för att komma ur detta läge)help(mult)
Övningsfråga: Försök komma på de bästa förklaringarna ni kan på varför övningarna ovan beter sig som de gör. Det är inte nödvändigt att ni har perfekta förklaringar på allt, då vissa av övningarna rör koncept som kommer in senare i kursen. Om det är någon del ni har svårt att förstå, skriv egen kod och egna uttryck där ni byter namn och plats på delarna, och se om ni kan klura ut det.
Tips: Använd den interaktiva tolken för att snabbt och smidigt testa koddetaljer ni är osäkra på.
Steg 3: Köra Python direkt i Thonny
För att göra det lite enklare medan man utvecklar kan man köra Python direkt i Thonny.
Thonny har ett antal olika fält för att visa olika typer av information om din kod. När Thonny först startar bör det se ut ungefär såhär.
Skriva kod i Thonny
Det enda fält du inte kan stänga helt är själva textredigeringsfältet som visar innehållet i den fil du just nu arbetar med.
]
Du kan öppna flera filer samtidigt och de kommer då visas som flikar i överkanten av textredigeringsfältet.
OBS! att Thonny inte automatiskt sparar din fil utan du måste komma ihåg att spara dina ändringar. Du kan se om en fil har osparade ändringar genom att titta på fliken. Om det står en asterisk efter filnamnet har du osparade ändringar.
Köra kod i Thonny
När du skrivit kod i textfönstret och sparat filen kan du köra filen direkt i Thonny utan att behöva gå till terminalfönstret och köra koden därifrån.
När du först öppnade Thonny visades två fält. Överst var textredigeringsfältet som vi redan pratat om och under det är ett skalfält, “Shell”.
Notera att skalfältet redan från start innehåller >>>
, som du kanske känner igen som en pythonprompt. Som du kanske redan gissat betyder det att Python redan kör i interaktivt läge i skalfältet. Du kan prova att skriva t.ex. 3 ** 2
och se vad som händer.
Du kan också köra koden i den aktiva fliken i textredigeringsfältet kan du trycka på tangenten F5. Resultatet av körningen kommer dyka upp i skalfältet.
Notera att skalfältet har en prompt efter resultatet av körningen. Det är här som det riktigt trevliga med det här arbetssättet kommer in. Du kan nu fortsätta köra nya kommandon i skalfältet som om programmet fortfarande körde med tillgång till den omgivning programmet skapat. Du kan t.ex. anropa funktioner du skapade i din .py-fil som om du kört varje rad från filen i den interaktiva pythontolken.
Du är nu redo för Pythonuppgifter 1!
Redovisning och inlämning
Redovisning, inlämning och kompletteringar (Tema 1-3)
- På sidan Redovisning hittar du information om den muntliga redovisningen, samt hur du kompletterar om du missar ett redovisningstillfälle.
- På sidan Inlämningar hittar du information inlämning av kod m.m.
- Ni får antingen Godkänt eller Komplettering ges på inlämningar som hör ihop med temauppgift 1-3. Vid Komplettering får ni instruktioner för vad som ska kompletteras. På Temauppgift 3, kan ni även få Väl godkänt.
Redovisningssal
Bokstäverna A-J syftar på gruppen som ni anmälde er pargrupp till i Webreg.
- SU04
- kl 10.15-11.00: A-E
- kl 11.15-12.00: F-J
Att redovisa
Vid redovisningstillfället visar du att du gjort alla delar. Inför redovisningstillfället ska du förbereda dig så att du kan demonstrera kortfattat nedanstående punkter. Du behöver inte redovisa för just den lärare som är ansvarig för din grupp i Webreg.
På redovisningarna är det du som redovisar som ska vara den aktiva parten och redovisa enligt checklistan. Läraren du redovisar för kommer inte leda dig genom redovisningen, men kan ställa följdfrågor kring det du redovisar.
- Användning av terminalen:
- kommandon och argument
- se innehållet i kataloger och filer via terminalen
- navigering mellan kataloger i terminalen
- absoluta och relativa sökvägar (användning tillsammans med kommandon)
- hur man ser fil- och katalogrättigheter
- Textfiler och Thonny: öppna och redigera en textfil i Thonny
- Python:
- visa att du kan köra Python från kommandoraden, både genom att skicka med en fil och i interaktivt läge
- visa att du kan köra Python i Thonny
Att skicka in
Efter redovisning skickas textfilen med svaren på frågorna i Del 2 in via Sendlab.
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2024-07-26