Reputation: 45
So I am completely new to coding and I'm going through a class right now and I'm stuck. Essentially the problem is this:
Assign sum_extra
with the total extra credit received given list test_grades
. Full credit is 100, so anything over 100 is extra credit.
Sample output for the given program with input: '101 83 107 90'
My current code is this:
user_input = input()
test_grades = list(map(int, user_input.split())) # test_grades is an integer list of test scores
sum_extra = 0
for grade in test_grades:
if grade > 100:
sum_extra = grade - 100
print('Sum extra:', sum_extra)
The problem I am having is that it isn't adding the total extra over 100. Like for the example inputs above it runs and totals 7 instead of 8. I'm honestly not sure what I am missing. Also if it isn't too much trouble, I would prefer to just get a nudge in the right direction rather than a flat out answer. Thank you so much.
Upvotes: 2
Views: 1172
Reputation: 1
user_input = input()
test_grades = list(map(int, user_input.split())) # test_grades is an integer list of test scores
sum_extra = -999 # Initialize to -999 before your loop
sum_extra = 0 # Resetting sum_extra to 0 for calculation
for grade in test_grades:
if grade > 100:
sum_extra += (grade - 100)
print('Sum extra:', sum_extra)
Upvotes: 0
Reputation: 1
In the following statement, sum_extra = grade - 100
, you are updating sum_extra value. To get the sum of the extra credits you need to accumulate by doing the following: sum_extra += (grade - 100)
.
Upvotes: 0
Reputation: 294
While iterating through the test_grades list, if grade is greater than 100 then you need to update the sum_extra i.e. sum_extra += grade - 100
So the exact code will be like this
user_input = input()
test_grades = list(map(int, user_input.split())) # test_grades is an integer list of test scores
sum_extra = 0
for grade in test_grades:
if grade > 100:
sum_extra += grade - 100
print('Sum extra:', sum_extra)
Upvotes: 0
Reputation: 33335
sum_extra = grade - 100
That line of code assigns a new value to sum_extra, discarding whatever value it already had.
Instead, you want to add to the existing value:
sum_extra = sum_extra + (grade - 100)
Upvotes: 1
Reputation: 361675
sum_extra
needs to contain the sum of all the extra points. As written your code overwrites it with the current excess each time rather than adding together all the extra points.
Upvotes: 0