Chris Castillo wrote:
*so far I have this and the format is what i want:*
------------------------------------------------------------------------------------------
# Set all necessary variables
name = None
fileOut = open('outputFile.txt', 'w')
total = 0
averageScore = 0
numofScores = 0
score = 0
# Header for output file
fileOut.write("Bowling Report\n" + ("-" * 40) + "\n")
# Iterate line by line through file to get names and their
corresponding scores
for line in open('bowlingscores.txt', 'r'):
line = line.strip()
if line:
if line.isdigit():
score = int(line)
numofScores += 1
total += score
averageScore = total / numofScores # Get average score
# Decides where bowler stands compared to the average score
if score < averageScore:
score = "\tBelow average"
elif score > averageScore and score != 300:
score = "\tAbove average!"
elif score == 300:
score = "\tPerfect score!"
else:
name = line
# Checks to see if name and score have values
if name and score:
fileOut.write('%s\t%s\r\n' % (name, score))
name, score = None, None
fileOut.close()
------------------------------------------------------------------------------------
*the problem is that it's not comparing the first bowler's score to
the average score and the output file looks like this:
*
Bowling Report
----------------------------------------
David 120
Hector Perfect score!
Mary Below average
*
is the logic in my if-elif statements wrong or is it just skipping the
first bowler's score?
*
You must process all the scores before computing averages. This means
saving each player's score.
Use a dictionary with the name as the key and the score as the value.
Then go thru the dictionary to compute and report averages.
--
Bob Gailer
Chapel Hill NC
919-636-4239
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor