11 svar
226 visningar
PeterNCool 7
Postad: 29 jan 2023 16:49 Redigerad: 29 jan 2023 16:51

Summering..

Hej! har denna uppg som inte vill funka. Nån som vill hjälpa till, tack...?

UPPG: Skriv en funktion som summerar alla tal i en lista
 
# Fyll i funktionen
def summera(a,b,c,d,e):
      return (a+b+c+d+e)
summera(1,2,3,4,5) #denna rad skulle väl inte behövas?
 
if summera(1,2,3,4,5) == 15:
      print("Bra jobbat!")
else:
      print("Summan av 1 + 2 + 3 + 4 + 5 borde ha blivit 15 men den är {}".format(summera([1,2,3,4,5])))
 
 

Fermatrix 7841 – Fd. Medlem
Postad: 29 jan 2023 17:12

Du ska ta emot en lista, men du verkar ta emot 5 tal.

Du kan använda den inbyggda funktionen sum:

def summera(a):
    return sum(a)


print(summera([1, 2, 3]))




PeterNCool 7
Postad: 29 jan 2023 18:24

Stort tack för hjälpen 🥇. Får nog nöta på en del tror jag! Missade hakparenteserna först men de är nu med.

 Såhär blev det. Trevlig kväll
 
# Fyll i funktionen
def summera(a):
     return sum (a)
#print (summera([1,2,3,4,5]))
 
 if summera([1,2,3,4,6]) == 15:
     print("Bra jobbat!")
else:
     print("Summan av 1 + 2 + 3 + 4 + 5 borde ha blivit 15 men den är {}".format(summera([1,2,3,4,5])))
 
Summan av 1 + 2 + 3 + 4 + 5 borde ha blivit 15 men den är 15

PeterNCool 7
Postad: 2 feb 2023 18:56

Hej igen, efter att ha kollat noggrannare så tycker jag inte att koden gör vad den bör göra. Verkar inte som att den läser listan i "summera". Villkoren i if-satsen gås inte igenom..??

Här är hela koden:

# Fyll i funktionen
def summera(a):
     return sum(a)
summera([1,2,3,4,5])

 

if summera([1,2,3,4,5]) == 15:
    print("Bra jobbat!")
else:
    print("Summan av 1 + 2 + 3 + 4 + 5 borde ha blivit 15 men den är {}".format(summera([1,2,3,4,5])))

Laguna Online 30473
Postad: 2 feb 2023 19:27

Vad skriver programmet ut nu?

PeterNCool 7
Postad: 2 feb 2023 20:00 Redigerad: 2 feb 2023 20:02

Med dessa siffror skriver det  ut : Bra jobbat!

Raden: summera([1,2,3,4,5]) verkar inte spela nån roll. Det kanske ska vara så också...?

Laguna Online 30473
Postad: 2 feb 2023 20:03

Ja, det ensamma anropet har ingen effekt alls, man gör ju inget med returvärdet.

PeterNCool 7
Postad: 2 feb 2023 20:47

Okej, men jag tänkte att if-satsen, som den är skriven, skulle kunna ge ett av svaren (if eller else) samt svar på vilken summan på talserien man skrivit in...

Hur skulle koden för detta isf se ut? Vet du?

Laguna Online 30473
Postad: 2 feb 2023 20:53

Jag förstår nog inte vad du menar. Gör inte if-satsen det nu?

PeterNCool 7
Postad: 2 feb 2023 21:05 Redigerad: 2 feb 2023 21:06

Om jag summera: if summera([1,2,3,4,5]) == 15:

så blir svaret: Bra jobbat!

med detta: if summera([1,2,3,4,6]) == 15:

blir det: Summan av 1 + 2 + 3 + 4 + 5 borde ha blivit 15 men den är 15. Varför skrivs då inte 16 ut?

Nåt stämmer inte med den här raden:

print("Summan av 1 + 2 + 3 + 4 + 5 borde ha blivit 15 men den är {}".format(summera([1,2,3,4,5])))

Laguna Online 30473
Postad: 2 feb 2023 21:27

Det är förstås meningen att det ska stå samma sak på båda ställena, men det är bättre att göra anropet bara en gång.

Du kan skriva resultat = summera([1,2,3,4,5]) och sedan 

if resultat == 15

och 

format(resultat)

Men texten "Summan av 1+2+3+4+5" kan förstås fortfarande säga något annat än vad som faktiskt beräknades.

PeterNCool 7
Postad: 2 feb 2023 21:34

Okej nu börjar jag förstå...

Jag testar vidare. Får återkomma här på sidan om det ej funkar.

Tack för hjälpen så länge 😊

Svara
Close