Till KTH:s startsida Till KTH:s startsida

Gruppwebben som samarbetsyta stängs 31 december 2026. Du som administratör behöver nu exportera gruppens innehåll och/eller radera gruppen.

Observera: Från och med den 1 oktober 2026 kommer delar av gruppwebben som inte längre används, successivt att stängas ned, exempelvis gruppwebbar som redan har flyttats eller varit inaktiva under en längre tid.

Mer information hittar du i nyheten: Gruppwebben och Social stänger hösten 2026. Stöd och instruktioner för hur du exporterar en gruppwebb finns i: Gruppwebben som samarbetsyta stängs hösten 2026.

Läxa 3 (förberedelse för labb 4)

I labb 4 ska du skriva ett program som använder en klass som du själv hittat på. Förberedelser:

  • Läs Kap 8 i (om klasser) i kursboken.
  • Gå igenom och provkör husdjursprogrammet (se nedan) så att du förstår hur det fungerar.
  • Skriv sedan en egen klass (tillsammans med din gruppkompis) med minst fem attribut och metoder.
#################################################################
#####################  klassen Husdjur  #########################
#################################################################

class Husdjur(object):
    """ Ett virtuellt husdjur """
    def __init__(self, djurnamn):
        """Konstruktorn"""
        self.namn = djurnamn
        self.glad = 0
        self.hunger = 0

    def __str__(self):
        sträng = self.namn
        sträng += ", " + str(self.glad)
        sträng += ", " + str(self.hunger)
        return sträng
        
    def visaStatus(self):
        """Visar husdjurets namn och hur det mår."""
        print("\n", self.namn, "är ",end="")
        if self.glad > 0 and self.hunger < 3:
            print("glad: (^_^)")
        else:
            print("ledsen: (T_T)")

    def banna(self):
        """Ger husdjuret bannor. glad minskas."""   
        print("\n - Fy på dig", self.namn, "!")
        self.glad -= 3

    def mata(self, mat):
        """Ger husdjuret mat. hunger minskas."""
        print
        for i in range(mat):
            print("GLUFS",end=" ")
        self.hunger -= mat

    def leka(self):
        """Leker med husdjuret. glad och hunger ökar"""
        self.glad += 1
        print("\n~~~~~~~~~~~ WHEEEEEEE! ~~~~~~~~~~~")
        self.hunger += 1

    def avsked(self):
        """Skriver ut avskedet."""
        print
        print("Hejdå,", self.namn, "kommer att sakna dig!")

################################################################
############################ funktioner ########################
################################################################
def utskriftstest(djur):
    """Testar olika sätt att skriva ut objektet"""
    print("------------ Test av utskrifter -----------")
    print("Anropar visaStatus: ", end = "")
    djur.visaStatus()
    print("Anropar __str__: ", end = "")
    print(djur)
    print("Anropar type: ", end = "")
    print(type(djur))
    print("-------------------------------------------")

def skötsel(djur):
    """Meny för djurskötsel"""
    svar = input(" Vill du \n  banna \n  mata \n  leka med \n ditt husdjur? " )
    while svar:
        if svar[0]=="m":
            bullar = int(input("Hur många bullar? "))
            djur.mata(bullar)    
        elif svar[0]=="b":
            djur.banna()
        elif svar[0]=="l":
            djur.leka()
        else:
            print("Hursa? ")
        djur.visaStatus()
        print(djur)
        svar = input(" Vill du \n  banna \n  mata \n  leka med \n ditt husdjur? " )    

def main():
    djurnamn = input("Vad vill du döpa ditt husdjur till? ")
    djur = Husdjur(djurnamn)
    utskriftstest(djur)
    skötsel(djur)
    djur.avsked()


main()