4 svar
130 visningar
Henrikn00 8
Postad: 11 jul 16:14 Redigerad: 11 jul 16:16

Har jag gjort rätt? Python uppgift

Hej, 

Jag har en uppgift i en programmeringskurs som lyder följande: 

Kursens uppgift i Python - Färdigställ hundregistret! Du ska skapa en list av hundar. Du får själva strukturen för programmet, här nedan. Meningen är därmed att du ska skriva all logikkod som hör till respektive kodavsnitt. Den kod som har klippts bort är markerad med "...". Notera: Inlämning ska vara en Python-fil eller ren text-fil, dvs. filändelserna .py eller .txt

Här följer kodskelettet:

 

# HUNDREGISTRET# Ditt namn här

'''********************KLASSER********************'''

class Hund:...

'''********************VARIABLER********************'''

# detta är en list av hundar...

'''********************FUNKTIONER********************'''

# Funktionen skrivInHund# Här kan man skriva in en eller flera hundar, tills anv säger nej.

def skrivInHund():    fortsätt = True...        if (janej == 'nej'): fortsätt = False

# Funktionen yngstaHunden# Hittar den yngsta hunden och skriver ut åldern.

def yngstaHunden():...    print('Den yngsta hunden är ' + str(yngst) + ' år och är en ' + ras + '.')         

# **********************************************# **********************************************

# Här börjar själva programmet

print('Välkommen till hundregistret!')...print('Tack för att du ville använda detta utmärkta program!')

Såhär har jag skrivit min kod i Python: 

# HUNDREGISTRET

'''********************KLASSER********************'''

class Hund: def __init__(self, namn, ras, ålder): self.namn = namn self.ras = ras self.ålder = ålder

'''********************VARIABLER********************'''

# detta är en list av hundarhundar = []

'''********************FUNKTIONER********************'''

# Funktionen skrivInHund# Här kan man skriva in en eller flera hundar, tills anv säger nej.

def skrivInHund(): fortsätt = True while fortsätt: namn = input('Ange hundens namn: ') ras = input('Ange hundens ras: ') ålder = int(input('Ange hundens ålder: ')) ny_hund = Hund(namn, ras, ålder) hundar.append(ny_hund) janej = input('Vill du skriva in en till hund? (ja/nej): ').strip().lower() if (janej == 'nej'): fortsätt = False

# Funktionen yngstaHunden# Hittar den yngsta hunden och skriver ut åldern.

def yngstaHunden(): if not hundar: print('Inga hundar i registret.') return yngst_hund = min(hundar, key=lambda hund: hund.ålder) yngst = yngst_hund.ålder ras = yngst_hund.ras print('Den yngsta hunden är ' + str(yngst) + ' år och är en ' + ras + '.')

# **********************************************# **********************************************

# Här börjar själva programmet

print('Välkommen till hundregistret!')

while True: print('Vad vill du göra?') print('1. Lägg till en hund') print('2. Visa den yngsta hunden') print('3. Avsluta') val = input('Ange ditt val (1, 2, eller 3): ').strip() if val == '1': skrivInHund() elif val == '2': yngstaHunden() elif val == '3': break

print('Tack för att du ville använda detta utmärkta program!')

 

OBSERVERA att detta är direkt koperiat och inklistrat så ser inte riktigt ut såhär. Är detta rätt tror ni? 

Laguna Online 29599
Postad: 11 jul 16:47

Fungerar det?

thedifference 231
Postad: 11 jul 17:03 Redigerad: 11 jul 17:03

Formattera din kod så blir det så mycket lättare att hjälpa dig =) finns en knapp {;} här på Pluggakuten för att göra det snyggt (när du klistrar från ditt IDE).

# HUNDREGISTRET

'''
********************KLASSER********************
'''

class Hund: 
    def __init__(self, namn, ras, ålder):
        self.namn = namn
        self.ras = ras
        self.ålder = ålder

'''
********************VARIABLER********************
'''

# detta är en list av hundar
hundar = []

'''
********************FUNKTIONER********************
'''

# Funktionen skrivInHund
# Här kan man skriva in en eller flera hundar, tills anv säger nej.

def skrivInHund():
    fortsätt = True
    while fortsätt:
        namn = input('Ange hundens namn: ')
        ras = input('Ange hundens ras: ')
        ålder = int(input('Ange hundens ålder: '))
        ny_hund = Hund(namn, ras, ålder)
        hundar.append(ny_hund)
        janej = input('Vill du skriva in en till hund? (ja/nej): ').strip().lower()
        if (janej == 'nej'):
            fortsätt = False

# Funktionen yngstaHunden
# Hittar den yngsta hunden och skriver ut åldern.

def yngstaHunden(): 
    if not hundar:
        print('Inga hundar i registret.')
        return
    yngst_hund = min(hundar, key=lambda hund: hund.ålder)
    yngst = yngst_hund.ålder
    ras = yngst_hund.ras
    print('Den yngsta hunden är ' + str(yngst) + ' år och är en ' + ras + '.')

# **********************************************
# **********************************************

# Här börjar själva programmet

print('Välkommen till hundregistret!')

while True:
    print('Vad vill du göra?')
    print('1. Lägg till en hund')
    print('2. Visa den yngsta hunden')
    print('3. Avsluta')
    val = input('Ange ditt val (1, 2, eller 3): ').strip()
    if val == '1':
        skrivInHund()
    elif val == '2':
        yngstaHunden()
    elif val == '3':
        break

print('Tack för att du ville använda detta utmärkta program!')

Din kod ser ut att göra det som bads om. Om du vill putsa lite kan du använda f-strings:

print(f'Den yngsta hunden är {yngst} år gammal och är en {ras}.')
Henrikn00 8
Postad: 11 jul 17:10
thedifference skrev:

Formattera din kod så blir det så mycket lättare att hjälpa dig =) finns en knapp {;} här på Pluggakuten för att göra det snyggt (när du klistrar från ditt IDE).

# HUNDREGISTRET

'''
********************KLASSER********************
'''

class Hund: 
    def __init__(self, namn, ras, ålder):
        self.namn = namn
        self.ras = ras
        self.ålder = ålder

'''
********************VARIABLER********************
'''

# detta är en list av hundar
hundar = []

'''
********************FUNKTIONER********************
'''

# Funktionen skrivInHund
# Här kan man skriva in en eller flera hundar, tills anv säger nej.

def skrivInHund():
    fortsätt = True
    while fortsätt:
        namn = input('Ange hundens namn: ')
        ras = input('Ange hundens ras: ')
        ålder = int(input('Ange hundens ålder: '))
        ny_hund = Hund(namn, ras, ålder)
        hundar.append(ny_hund)
        janej = input('Vill du skriva in en till hund? (ja/nej): ').strip().lower()
        if (janej == 'nej'):
            fortsätt = False

# Funktionen yngstaHunden
# Hittar den yngsta hunden och skriver ut åldern.

def yngstaHunden(): 
    if not hundar:
        print('Inga hundar i registret.')
        return
    yngst_hund = min(hundar, key=lambda hund: hund.ålder)
    yngst = yngst_hund.ålder
    ras = yngst_hund.ras
    print('Den yngsta hunden är ' + str(yngst) + ' år och är en ' + ras + '.')

# **********************************************
# **********************************************

# Här börjar själva programmet

print('Välkommen till hundregistret!')

while True:
    print('Vad vill du göra?')
    print('1. Lägg till en hund')
    print('2. Visa den yngsta hunden')
    print('3. Avsluta')
    val = input('Ange ditt val (1, 2, eller 3): ').strip()
    if val == '1':
        skrivInHund()
    elif val == '2':
        yngstaHunden()
    elif val == '3':
        break

print('Tack för att du ville använda detta utmärkta program!')

Din kod ser ut att göra det som bads om. Om du vill putsa lite kan du använda f-strings:

print(f'Den yngsta hunden är {yngst} år gammal och är en {ras}.')

Tack för tipset, ber om ursäkt för det. Var ska jag lägga in f-stringsen?

thedifference 231
Postad: 11 jul 17:55

Istället för sista raden i yngstaHunden(). Gör samma jobb, men är smidigare att jobba med.

Svara Avbryt
Close