Göm meny

Introuppgift 1

Syftet med denna första introuppgiften är att lära känna igen anrop till metoder, använda objekt och rätt terminologi.

Pargruppsanmälan

Anmäl dig till en pargrupp här. Ni bestämmer själva vem ni vill jobba med. Ny pargrupp bildas varje tema.

Redovisning

Introuppgift 1 redovisas 16 februari 2017.

Vid frånvaro skickar du in svaren på frågorna i uppgifterna samt redovisningsfrågorna längst ner på sidan. Skicka också in koden du skrivit som tillhör uppgift 4.

Uppgifter

Uppgift 1

Identifiera objekt och metoder i nedanstående kod (kör koden om du vill):

values = [1, 2, 3]
values.append(4)

index = 0
while index < len(values):
    print(values[index])
    index += 1

Uppgift 2

Identifiera objekt och metoder i nedanstående kod (kör koden om du vill):

words = { "hej" : "hello", "bil" : "car", "äpple" : "apple" }

while True:
    query = input("Skriv ett ord: ")
    for key, value in words.items():
        if key.startswith(query):
            output = "Menar du {}? På engelska heter det {}."
            print(output.format(key, value))

Uppgift 3

Identifiera objekt och metoder i nedanstående kod (kör koden om du vill):

import requests

response = requests.get('https://www.ida.liu.se/screen/pul_free_lx.json')
url = response.url
json_dict = response.json()

print("Hämtade data från" + url)

salar = list(json_dict.keys())
print("Följande salar finns: " + ", ".join(salar))

Uppgift 4

I filen mrdata.py finns klassen DataRow definierad. En instans av klassen DataRow innehåller informationen från en rad i hos csv-filer som hör till experimentdata från studien om mentala rotationer som användes sista temauppgiften i 729G74. Instanser av DataRow-klassen har följande instansvariabler:

  • trial
  • image_file
  • time
  • correct_answer
  • subjects_answer
  • degrees_rotated

Instanser har även metoden get_error_type() som returnerar den feltyp som svaret tillhör.

  • Om försökspersonen svarade att bilden var roterad detta var korrekt, returneras 0.
  • Om försökspersonen svarade att bilden inte var roterad och detta var korrekt, returneras 1.
  • Om försökspersonen svarade att bilden var roterad och detta inte var korrekt, returneras 2.
  • Om försökspersonen svarade att bilden inte var roterad och detta inte var korrekt returneras 3.
  • Om datat i raden är felaktig returneras -1.

För att inte behöva komma ihåg dessa siffror kan man använda variablerna som är lagrade på toppnivå i filen mrdata.py. Följande variabler är definerade:

  • mrdata.TP = 0
  • mrdata.TN = 1
  • mrdata.FP = 2
  • mrdata.FN = 3

Kopiera filen mrdata.py från ~729G75/kursmaterial/tema1/ovning1/ till en lämpligt ställe i din hemkatalog. Kopiera även katalogen csv. Skapa en ny fil där du löser följande:

  1. Importera mrdata.py
  2. Läs in data från en CSV-fil och skapa en instans av DataRow för varje rad i CSV-filen. Spara instanserna du skapar i en lista.
  3. Skriv först ut alla rader där försökspersonens svar var korrekt.
  4. Skriv sedan ut alla rader där försökspersonsn svar var fel (använd metoden get_error_type().

Varje rad du skriver ut ska ha följande informatin:

  • vilken omgång (trial) datat kommer ifrån
  • vilken bild som visades
  • tiden försökspersonen tog innan hen svarade

Det kan t.ex. se ut så här:

Korrekta svar:

Trial: 1, image: R2_3_3_2_0Y0.pct, time: 1355
Trial: 2, image: R3_4_3_2_90Y150.pct, time: 2079
Trial: 3, image: 2_4_4_2_0Y150.pct, time: 1834
Trial: 4, image: 3_3_3_2_0Y100.pct, time: 4780
Trial: 5, image: 3_3_3_3_90Y50.pct, time: 1685
Trial: 6, image: R2_4_4_2_0Y50.pct, time: 1237
Trial: 7, image: R3_3_3_3_90Y100.pct, time: 2961
Trial: 8, image: 2_3_3_2_0Y0.pct, time: 1275
Trial: 9, image: R3_4_3_3_180Y150.pct, time: 4716
.
.
.

Felaktiga svar:
Trial: 10, image: 2_4_4_2_180Y150.pct, time: 3794
Trial: 33, image: 3_3_3_3_180Y50.pct, time: 1831
Trial: 43, image: 3_3_3_3_180Y100.pct, time: 5983
Trial: 44, image: R2_3_4_2_90Y150.pct, time: 2750
.
.
.

Redovisning

Vid redovisning ska du kunna svara på följande frågor:

  1. Vad är en klass?
  2. Vad är ett objekt?
  3. Vad är en instans?
  4. Är det någon skillnad mellan ett objekt och en instans?
  5. Vad är en metod?
  6. Vad är det för skillnad mellan en funktion och en metod?
  7. Vad är en instansvariabel?
  8. Vad vad betyder det när man säger att man skapar ett objekt av en viss klass?
  9. Vad betyder det när man säger att man instansierar en klass?

Sidansvarig: Jody Foo
Senast uppdaterad: 2017-03-14