我已经在这个功能上工作了几天,这是我的第一个真正的程序(我正在学习自己编写代码)。我已经习惯了for循环和那种东西,并决定是时候把我的技能用于测试,而我的朋友给了我一个尝试的提示。我有用户估算的“分数”,我必须在排名系统中对这些分数进行分类。 到目前为止,这是我的代码:
def grade_scores():
count = int(input('Enter amount of scores: '))
print('Each will be entered one per line')
scoreList = []
for i in range(1, count+1):
scoreList.append(int(input('Enter score: ')))
print("GRADE COUNT PERCENTAGE")
for grade in ('A', 'B', 'C', 'D', 'F'):
return grade
A = 'A'
B = 'B'
C = 'C'
D = 'D'
F = 'F'
for score in (scoreList):
if score >= 91:
score = A
count[0] += 1 # Increase index 0 (Corresponds to value A) by 1
elif score >= 81 and score <=90:
score = B
count[1] += 1
elif score >= 71 and score <=80:
score = C
count[2] += 1
elif score >= 61 and score <=70:
score = D
count[3] += 1
else: #<= 60
score = F
count[4] += 1
最后,我的目标是以列形式打印这样的,我知道这还不正确,我需要设置计数才能打印
print("GRADE COUNT")
print(grade, count)
grade_scores()
所以我的问题是如何格式化我的“计数”以对用户输入进行分类,还是我可能在正确的轨道上?
答案 0 :(得分:0)
你走在正确的轨道上,但你的代码中存在一些根本性的缺陷。
def get_grades():
count = int(input("how many scores? "))
scores = []
for _ in range(count):
score = int(input("Score: "))
scores.append(score)
# this whole section can be rewritten as:
# # scores = [int(input("Score: ")) for _ in range(count)]
result = {"A":0, "B":0, "C":0, "D":0, "F":0}
for score in scores:
if score > 90:
result["A"] += 1
elif 80 < score <= 90:
result["B"] += 1
elif 70 < score <= 80:
result["C"] += 1
elif 60 < score <= 70:
result["D"] += 1
else:
result["F"] += 1
return (scores, result)
这会给你一个元组:
([the list of raw scores], {a dictionary of grade counts})