# grades3.py
# Written by Todd Wareham for CS 2500
"""
Given the name of a single-column text file as a command-line argument where
 each line of the file contains a single course mark in the range 0 - 100, 
 computes and prints the number of letter-grade marks of each type (A, B, C,
 D, F) [efficient version].
"""

import sys

if len(sys.argv) != 2:
    print "usage: ", sys.argv[0], " filename"
    sys.exit(1)

numA = numB = numC = numD = numF = 0

for grade in open(sys.argv[1]):
    grade = int(grade)
    if ((grade < 0 ) or (grade > 100)):
        print grade, "is not a valid mark"
    elif (grade < 65):
        if (55 <= grade < 65):
            numC += 1
        elif (50 <= grade < 55):
            numD += 1
        else:
            numF += 1
    else:
        if (80 <= grade <= 100):
            numA += 1
        else:
            numB += 1

print "Grades: ", numA, "As /", numB, "Bs / ", numC, "Cs / ", \
      numD, "Ds / ", numF, "Fs / "

