Laboration: Klasser, behållare och upprepningar

Hittills i kursen har vi jobbat med existerande datatyper i Python. I den här laborationen ska ni istället skapa er egen sammansatta datatyp genom att skriva er första klass. Ni kommer öva på att skapa objekt av er typ och att spara ner dessa i en behållare som ni sedan ska iterera igenom.

I laborationen ska ni öva på att representera ett objekt med en sträng. Fördelen med att representera objekt på ett bättre sätt är att det underlättar för den som ska programmera. Det kan göra koden mer intuitiv, mer läsbar. Detta minskar risken för fel (buggar).

Innan du börjar koda

Läs på om klasser, listor och upprepningar.

Uppgift

Definiera en klass “Student” som har minst tre attribut: förnamn, efternamn och personnummer. Klassen ska ha minst två metoder, __init__ och __str__.

Skapa minst tre objekt av typen “Student” genom att be användaren skriva in information om studenter. Fundera på bästa sättet att spara ner de skapade objekten.

När alla objekt är skapade ska programmet skriva ut alla skapade objekt.

Exempelutskrift

Vad heter studenten? Jan Jansson
Vad är studentens personnummer? 0404040010

Objektet skapat!

Vad heter studenten? Per Persson
Vad är studentens personnummer? 0303030030

Objektet skapat!

Vad heter studenten? Emma Emilsson
Vad är studentens personnummer? 010101000a
Personnumret får bara innehålla siffror, försök igen!
Vad är studentens personnummer? 0101010000

Objektet skapat!

Här är alla sparade objekt:
Namn: Jan Jansson Personnr: 0404040010
Namn: Per Persson Personnr: 0303030030
Namn: Emma Emilsson Personnr: 0101010000

Krav

Kamraträttning

Denna laboration redovisas inte för en lärarassistent, utan kommer kamraträttas av en kurskamrat. När du lämnat in din kod på Canvas kommer du automatiskt bli tilldelad en annan persons kod, som du ska rätta utifrån den rättningsmatris som syns bredvid inlämningen. Ladda ner koden, provkör den på din dator och fyll sedan i rättningsmatrisen. Lämna gärna konstruktiva kommentarer för att hjälpa varandra att bli ännu bättre på att koda!

Frivilliga extrauppgifter

Redigera listan

I grunduppgiften kan vi endast lägga till objekt av typen Student. Lägg till så att användaren kan ändra och ta bort objekt från listan.

Exempelutskrift

Vill du lägga till (l), ändra (a) eller ta bort (t) ett objekt? a

Skriv in personnumret på objektet du vill ändra: 0101010000
Vill du ändra namn på Emma Löv (j/n)? j
Skriv in det nya namnet: Ebba Löv

Nu är namnet för 0101010000 ändrat till Ebba Löv!

Lägga till många studenter

Ändra så att programmet kan fråga efter $n$ studenter istället för bara tre.

Exempelutskrift

Hur många studenter vill du lägga till? 2

Vad heter studenten? Jan Jansson
Vad är studentens personnummer? 0404040010

Objektet skapat!

Vad heter studenten? Per Persson
Vad är studentens personnummer? 0303030030

Objektet skapat!

Här är alla sparade objekt:
Namn: Jan Jansson Personnr: 0404040010
Namn: Per Persson Personnr: 0303030030