I need help with a weighted grade calculator, i have the bits that i need to calculate the data and the weighted averages. My problem is importing the data and storing it. I think i need to use lists but im just not sure how to separate each entry, I know I can use .split() and i will probably do that. But my real problem is figuring out how to store these values and then write to an output file.
So this is what the .txt file will look like for the input that i am importing to my program with a "open("scores.txt","r")" command
Babbage, Charles
10.0 9.5 8.0 10.0
9.5 10.0 9.0
85.0 92.0 81.0
Turing, Alan
10.0 8.0 6.0
10.0 10.0 9.0 9.5
90.0 92.0 88.5
Hopper, Grace
10.0 10.0 8.0
10.0 10.0 9.0 9.5
90.0 92.0 88.0
Van Rossum, Guido
7.5 8.5
7.5 8.5 6.0 9.0
68.0 81.0 70.0
Backus, John
9.5 9.5 10.0 8.0 9.5 10.0
7.5 8.5 6.0 9.0 10.0
99.0 93.0 100.0
Crawley, Bryan
6.0
7.5
70.0 60.0 55.5
I tried using s.isdigit and s.isalpha and that didnt really work. 1st line is quizzes, 2nd line is projects, and third is exams. Number of quizzes and exams are arbitrary, the exams will always have three.
Here's what the output needs to look like:
Babbage, Charles 89.4 B
Turing, Alan 91.3 A
Hopper, Grace 92.7 A
Van Rossum, Guido 75.5 C
Backus, John 94.4 A
Crawley, Bryan 63.9 D
Here is what my code looks like now:
quiz_scores = []
while True:
score = float(input("Quiz #{} ----- ".format(len(quiz_scores)+1)))
if score == -1:
break
quiz_scores.append(score)
quiz_total = sum(quiz_scores) - min(quiz_scores)
if len(quiz_scores)>1:
quiz_avg = (quiz_total/((len(quiz_scores))-1)*10)
else:
quiz_avg = (quiz_total/(len(quiz_scores)*10)
print()
project_scores = []
while True:
score2 = float(input("Project #{} -- ".format(len(project_scores)+1)))
if score2 == -1:
break
project_scores.append(score2)
project_total = sum(project_scores)
project_avg = (project_total/(len(project_scores))*10)
print()
exam1 = float(input("Exam #1 ----- "))
exam2 = float(input("Exam #2 ----- "))
print()
final = float(input("Final Exam -- "))
average = ((quiz_avg*.15)+(project_avg*.20)+(exam1*.20)+(exam2*.20)+(final*.25))
print("Average ---- %.2f" % average)
if 90 <= average <= 100:
print("Grade ------- A")
if 80 <= average < 90:
print("Grade ------- B")
if 70 <= average < 80:
print("Grade ------- C")
if 60 <= average < 70:
print("Grade ------- D")
if 0 <= average < 60:
print("Grade ------- F")
Definitely looking to learn here, not just copy and paste what you comment; so please bear with me if i have some questions for you.
Thank you guys, this community has been very helpful.
Aucun commentaire:
Enregistrer un commentaire