【发布时间】:2018-04-12 04:05:48
【问题描述】:
我需要加权成绩计算器方面的帮助,我有计算数据和加权平均值所需的位。我的问题是导入数据并存储它。我想我需要使用列表,但我只是不确定如何分隔每个条目,我知道我可以使用 .split() 并且我可能会这样做。但我真正的问题是弄清楚如何存储这些值,然后写入输出文件。
这就是我使用“open("scores.txt","r")" 命令导入程序的输入的 .txt 文件的样子
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
我尝试使用 s.isdigit 和 s.isalpha,但并没有真正奏效。第一行是测验,第二行是项目,第三行是考试。测验和考试的数量是任意的,考试总是三个。
这是输出需要的样子:
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
这是我的代码现在的样子:
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")
绝对希望在这里学习,而不仅仅是复制粘贴您的评论;所以,如果我有一些问题要问你,请多多包涵。
谢谢你们,这个社区非常有帮助。
【问题讨论】:
-
您可能会发现Saving an Object (Data persistence) 的答案很有用。通过使用
pickle模块,您可以将您的数据列表直接保存到一个或多个文件中,稍后再读回。
标签: python list if-statement while-loop floating-point