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