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

Reply via email to