Till KTH:s startsida Till KTH:s startsida

Labb 4

Gör följande uppgifter, kraven måste uppfyllas.


Uppgift 1: Filhantering med felhantering


Betrakta filen tal.txt. Filen består av ett antal rader. Vissa rader består av ett tal, andra, som inleds med tecknet #, är kommentarer. Ladda ned filen. Skriv en funktion som tar ett filnamn som argument, läser in talen från filen och returnerar dem som en lista. Kommentarraderna ska ignoreras. Skriv sedan ett program som ber användaren mata in ett filnamn, läser in talen och skriver ut listan. En körning av programmet skulle kunna se ut så här:

Ange filnamn: FilSomInteFinns.txt
Filen "FilSomInteFinns.txt" kan inte hittas, försök igen!
Ange filnamn: tal.txt
[7, 10, 4, 8, 2, 3, 1]

Krav:
1. Om användaren anger en fil som inte finns ska programmet meddela att filen inte finns och be användaren att ange en annan fil (tips: använd try, except och IOError)
2. Ditt program ska vara skrivet så generellt så att det fungerar för vilken fil som helst utan att man ska behöva modifiera programmet. En konstig fil ska inte resultera i exekveringsfel utan i ett begripligt felmeddelande (tex: "Felaktigt filformat").

Uppgift 2: Funktioner och slingor

Skriv en funktion som tar en lista med tal som argument och returnerar medelvärdet. En sådan funktion kan skrivas trivialt genom att anropa numpy.mean eller genom sum (ls) / len (ls), men din uppgift är att använda en slinga för beräkningen.
Krav: En funktion med en slinga ska användas.

 


Uppgift 3: Funktioner och slingor 2

Skriv en funktion som tar en lista med tal som argument och returnerar standardavvikelsen. För ett antal tal beräknas standardavvikelsen s med formeln

är medelvärdet. Tips: Kvadratroten kan beräknas med funktionen sqrt i modulen math, dvs math.sqrt.
Krav: En funktion med en slinga ska användas.

 


Uppgift 4: Meny

Gör ett statistikprogram med meny där du kan utnyttja de tidigare gjorda uppgifter i den här labben:

Välj ett av följande
1. Ladda in data
2. Beräkna medelvärdet
3. Beräkna standardavvikelsen
4. Avsluta
Välj:5
Fel val försök igen med ett tal mellan 1 och 4!

Välj ett av följande
1. Ladda in data
2. Beräkna medelvärdet
3. Beräkna standardavvikelsen
4. Avsluta
Välj:1
Ange filnamn: tal.txt
Laddade in 7 tal

Välj ett av följande
1. Ladda in data
2. Beräkna medelvärdet
3. Beräkna standardavvikelsen
4. Avsluta
Välj:tio
tio är ingen tal, försök igen!

osv...

Krav och tips: Programmet ska använda sig av alla tidigare gjorda funktioner. För menyn ska du skriva en till funktion som skriver ut menyn, läser in valet och exekverar lämplig funktion (med utskrift av resultatet). Programmet ska även ta hand om eventuella felinmatningar enligt exemplet ovan. Programmets struktur ska vara generell, d.v.s. om man skulle vilja lägga till ett till val eller ta bort ett val så ska det vara enkelt.