10 svar
82 visningar
Mercy är nöjd med hjälpen!
Mercy 28
Postad: 7 maj 2020

Medelvärde och median

Hej!

Jag undrar varför kan inte min kod räkna medelvärde och median enligt uppgiften:

Skapa en lista med alla heltal från 1 till 100 (tips: använd funktionen range)
Använd slicing för att plocka ut de 10 talen som finns i mitten av listan
Skriv ut listan med de 10 tal du plockat ut
Beräkna och skriv ut medel- och medianvärde för de 10 talen

 

min kod är:

# Skapa en lista med hjälp av range (alla heltal från 0 till 100)
l = list(range(0, 101))
# Skriv ut listan
print(l)

# plocka och skriv ut de 10 mitten talen som finns i mitten av listan
s = l[45:55]
# Skriv ut listan
print("10 mitten talen är:")
print(s)

# Beräkna summan
for n in l:
sum += n

# Beräkna medelvärdet och median för de 10 mitten talen
avg = sum / len(l)

# Skriv ut resultatet
print("Medelvärdet är {0:.2f}".format(avg), "medianen är")

Skaft Online 952 – F.d. Moderator
Postad: 7 maj 2020 Redigerad: 7 maj 2020

Du borde få ett felmeddelande som hintar om problemet. Det ser ut som att första gången programmet stöter på din variabel "sum" så ska den ökas med n. Men från vad? Du bör nog lägga till att sum = 0 innan du börjar öka den.

Mercy 28
Postad: 7 maj 2020

Ska testa!

Lindehaven 427 – Leg. Lärare
Postad: 7 maj 2020 Redigerad: 7 maj 2020

Det första felmeddelandet blir:

TypeError: unsupported operand type(s) for +=: 'builtin_function_or_method' and 'int'

Detta beror på att sum är en inbyggd funktion som inte kan användas som en variabel.

Byt namn på variabeln till exvis nsum.

Nästa felmeddelande blir då:

NameError: name 'nsum' is not defined

Detta beror på att nsum försöker läsas innan variablen finns.

Skapa variabeln först genom att tilldela den ett värde.

nsum = 0

Lindehaven skrev:

Detta beror på att sum är en inbyggd funktion som inte kan användas som en variabel.

Jodå, det kan visst användas som variabel. Sen kan man tycka att det inte är det bästa variabelnamnet, men om man inte tänkt använda sum-funktionen och det inte handlar om något större kodprojekt är det väl ingen skada skedd.

Borde skrivit "...inbyggd funktion som inte kan användas som en variabel i denna kontext".

Laguna Online 8580
Postad: 7 maj 2020
Lindehaven skrev:

Borde skrivit "...inbyggd funktion som inte kan användas som en variabel i denna kontext".

Om man sätter sum till 0 i början så borde det fungera även här.

Mercy 28
Postad: 7 maj 2020 Redigerad: 7 maj 2020

Hej alla och tack för ert svar!

 

Jo det funkade med nsum som variabel men då får jag ej median vet inte varför?

Det program du visat beräknar inte medianen och skriver inte ut den heller.

Mercy 28
Postad: 7 maj 2020

Ja precis!

Laguna Online 8580
Postad: 7 maj 2020
Mercy skrev:

Ja precis!

Så då vet du varför du inte får medianen. 

Svara Avbryt
Close