"Krystal Brosz" <daisy...@gmail.com> wrote
i'm struggling with a program, i feel like i am really close to
getting it
You are not far away but you have a few little
problems to fix.
but i cannot find a way to use the target variables inside of a
loop:
I have no idea what you mean by "target variables".
There are no variables in the code called 'target' and
I don't understand what target you mean?
def main():
gradesEntered = 0
score = 0
numberOfGrades = 0
numberOfGrades = int(raw_input("Please enter the number of
grades:" ))
#Begin a 'for' loop to enter each score
The comment is confusing because you actually enter a while loop.
Inaccurate comments are worse than no comments at all!
while numberOfGrades != gradesEntered:
grade = int(raw_input("Please enter the grade:" ))
gradesEntered += 1
score =+ grade
Note that += and =+ do different things. I suspect this last line is
not doing what you think. Details like this are very important in
programming, especially since both forms are valid code, they
just do different things!
grade = [numberOfGrades]
And I don't know what you think this is doing but it is in fact
overwriting the value of grade that the user entered with a list
of one element, numberOfGrades. You then throw this away
the next time round the loop.
for i in range (numberOfGrades):
grade.append(i)
print determine_grade(grade,i)
Now you append i to the list containing numberOfGrades....
So if the user said they would have 3 grades you wind up
with grade being equal to
[3,0,1,2]
Which is almost certainly not what you want?
You also pass this list to determine_grade which
expects a number rather than a list so will always
print an error I suspect. Although I'd also expect it to
throw an NameError exception since result will not be defined...
Are you sure this is the actual code you are running?
#get the grade letter for scores
print "the total number of grades entered are:", score
print "The average of the scores is:", calc_average
print "The number of grades entered is:", gradesEntered
So ths prints the value of yourt last grade multiplied by +1
followed by a calc_average which is not actually set
anwthere in your code. It then prints gradesEntered
which should be the same as numberOfGrades.
def determine_grade(grade,i):
I'm not sure why you have i in the parameter list?
You don't do anything with it.
if grade >= 90 and grade <= 100:
result = 'Your grade is A'
elif grade >=80 and grade <= 89:
result = 'Your grade is B'
elif grade >= 70 and grade <= 79:
result = 'Your grade is C'
elif grade >=60 and grade <= 69:
result = 'Your grade is D'
elif grade < 60:
result = 'Your grade is F'
else:
print 'Error: Invalid grade.'
return result
If you reach the last 'else', result will not have been
assigned and yet, you try to return it. I'd expect
that to throw an error.
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor