Jämna & udda nummer

  • Författare
  • Meddelande

mirandawigander

css-hackare

  • Inlägg: 23
  • Blev medlem: 19 jan 2015, 12:51

Jämna & udda nummer

Inlägg29 jan 2015, 13:04

Nu har jag fastnat på sista "frågan" i Kmom02 Lab1.
Uppgiften är "Create a for-loop that goes through the numbers:
67,2,12,28,128,15,90,4,579,450. If the current number is even, you should
add it to a variable and if the current number is odd, you should subtract
it from the variable. Answer with the final result."

Jag har skrivit en kod, svaret ska vara 53 men jag får -53 och förstår inte vart det går fel.
Lägger in koden också så kanske det blir lättare att se vad som blivit knas.

Kod: Markera allt
def listnum(s):       
    for thing in [67, 2, 12, 28, 128, 15, 90, 4, 579, 450]:
        if thing %2:
           s = s + thing
        else:
           s = s - thing
    return s
Användarvisningsbild

Sylvanas

dbwebb

  • Inlägg: 1133
  • Blev medlem: 16 nov 2011, 17:03
  • Ort: Karlskrona

Re: Jämna & udda nummer

Inlägg29 jan 2015, 13:32

Problemet är din if-sats misstänker jag. Om du lägger in en print på vad thing är och vad s är i varje del av loopen så kommer du se att när det är jämna tal så subtraherar den istället, alltså gör koden tvärtom mot vad du är ute efter.
Du kollar om talet är jämt med thing % 2. Denna ger värdet 0 om talet är jämt. Men i python så står 0 även för False, vilket gör att if-satsen här inte triggas för jämna tal, men för udda, alltså när thing % 2 inte blir 0.
Brain - "Are you pondering what I'm pondering?"
Pinky - "I think so, Brain, but there's still a bug stuck in here from last time."

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 18 gäster