Lab 2: Uppgiftsbeskrivning

I denna labb skall ni skapa en egen modul med egna funktioner och anropa dessa från en separat fil.

Nyckelkoncept: Funktioner, Listor, Dictionaries, Scope, Moduler/Import

Uppgift 0

Ladda ned filen lab2.zip Download lab2.zip som innehåller följande filer

  • my_module.py (här skall ni skriva kod)
  • using_my_module.py (här skall ni skriva kod)
  • testing_my_module.py (skall bara köras i Uppgift 7)

Uppgift 1

Denna uppgift handlar om variabler och vad som händer om variabler med samma namn finns på flera ställen i ett program.

Öppna filen my_module.py, och filen using_my_module.py. Kör den senare, betrakta utskrifterna. För varje rad i utskrifterna, se till att ni vet vilken rad i källkoden (filerna) som gav upphov till den. Tänk efter varför det blir som det blir. Se till att ni kan förklara det.

(om ni tycker denna uppgift är lite lurig så börja med de andra, som är mer konkreta, och spara denna till sist)

 

Uppgift 2

Öppna filen my_module.py, och skriv en funktion my_function som beräknar följande matematiska uttryck

\sin^2(x)+x^2sin2(x)+x2

för ett givet x.

Anropa er nya funktion från using_my_module.py med några testfall och se att det verkar ok.

Uppgift 3

Skriv en funktion roll_dice(n) i my_module.py som simulerar ett kast med n tärningar och returnerar summan.

Anropa er nya funktion från using_my_module.py med några testfall och se att det verkar ok.

Uppgift 4

Skriv en funktion my_sort_list som sorterar en lista med heltal. Ni skall använda algoritmen bubble sort, som finns beskriven på wikipedia Links to an external site..

Anropa er nya funktion från using_my_module.py med några testfall och se att det verkar ok.

Obs, syftet är att ni skall öva på att använda listor, samt att läsa, förstå och implementera en algoritm i denna uppgift är det lätt att fuska, och sno en lösning från nätet, men gör inte det.

Uppgift 5

Skriv en funktion bandit_language som överför en textsträng med små bokstäver till rövarspråket (känt från Astrid Lindgrens romaner om Kalle Blomkvist, se wikipedia Links to an external site.). 

Regeln för rövarspråket är att man efter varje konsonant lägger ett o och därefter samma konsonant igen, till exempel byts b ut mot "bob" och f mot "fof". Vokalerna är oförändrade. "jag talar rövarspråket" blir alltså "jojagog totalolaror rorövovarorsospoproråkoketot".

Anropa er nya funktion från using_my_module.py med några testfall och se att det verkar ok.

Uppgift 6

Skriv en funktion make_bandit_dictionary som tar den befintliga (i using_my_moduleanimals som inparameter och returnerar en ny dictionary med samma keys som animals men med alla egenskaper översatta till rövarspråket.

Denna funktion skall ligga i using_my_module.

Uppgift 7

Kör filen testing_my_module.py. Ni behöver inte förstå vad den gör, men om den klagar över något kan det vara idé att se över implementeringen av motsvarande uppgift.