On Thursday, May 12, 2016 at 9:18:08 PM UTC+5:30, Jake Kobs wrote: > Hello all, I have been struggling with this code for 3 hours now and I'm > still stumped. My problem is that when I run the following code: > ------------------------------------------------------------------------------ > #this function will get the total scores > def getScores(totalScores, number): > for counter in range(0, number): > score = input('Enter their score: ') > totalScores = totalScores + score > > while not (score >= 0 and score <= 100): > > print "Your score must be between 0 and 100." > score = input('Enter their score: ') > > > > return totalScores > ------------------------------------------------------------------------------ > the program is supposed to find the average of two test scores and if one of > the scores is out of the score range (0-100), an error message is displayed. > The main problem with this is that when someone types in a number outside of > the range, it'll ask them to enter two scores again, but ends up adding all > of the scores together (including the invalid ones) and dividing by how many > there are. Please help.
I suggest you conceptualize the problem into 3 sub-problems: - IO - average computation - validation (between 0 and 100) For starters ignore validation. So we only have IO + computation ie Input then computation then Output Now if your input needs to feed into a computation you need a *data-structure* I suggest you consider lists eg the 5 scores 4 2 1 3 5 would be represented as the list [4,2,1,3,5] Their average -- 3 -- is to be *computed* and then to be given back to the user -- ie *output* Does this help start you off? -- https://mail.python.org/mailman/listinfo/python-list