Python 3- 分配成绩
Python 3- Assign grade
我正在尝试编写一个程序来读取分数列表,然后根据分数分配字母等级。定义一个函数来提示用户输入有效分数,直到他们输入标记值 -999。该函数应该创建一个列表和 return 列表。我一直在将我的标记值 -999 放入我的列表中。我该如何防止这种情况?
def main():
grade = getScore()
abcGrade = getGrade(grade)
print(grade, "is an", abcGrade)
def getScore():
grade = []
while grade != -999:
grade = int(input("Enter grades (-999 ends): "))
return grade
def getGrade(grade):
best = 100
if grade >= best - 10:
return 'A'
elif grade >= best - 20:
return 'B'
elif grade >= best - 30:
return 'C'
elif grade >= best - 40:
return 'D'
else:
return 'F'
main()
这就是您要找的:
from statistics import mean
def main():
grades = getScores()
grade = mean(grades)
abcGrade = getGrade(grade)
print(grade, "is an", abcGrade)
def getScores():
grades = []
while True:
grade = int(input("Enter grades (-999 ends): "))
if grade == -999: return grades
grades.append(grade)
def getGrade(grade):
best = 100
if grade >= best - 10:
return 'A'
elif grade >= best - 20:
return 'B'
elif grade >= best - 30:
return 'C'
elif grade >= best - 40:
return 'D'
else:
return 'F'
main()
我已经尽可能少地修改了。您必须获得所有成绩并取平均值。您的代码中的问题是它没有 return 任何值或 append()
到列表中。
在这段代码中,您没有将用户输入的值添加到列表中grade
;你正在重新定义 grade
所以它不再是一个列表而是一个整数:
def getScore():
grade = []
while grade != -999:
grade = int(input("Enter grades (-999 ends): "))
return grade
这不会在严格的、类型安全的语言中运行,但是,嘿,它是 python :)
要修复它,重命名列表(grades
将是一个直观的名称)并使用 append()
添加 grade
的值。然后,returngrades
,而不是grade
得到一个列表。
我正在尝试编写一个程序来读取分数列表,然后根据分数分配字母等级。定义一个函数来提示用户输入有效分数,直到他们输入标记值 -999。该函数应该创建一个列表和 return 列表。我一直在将我的标记值 -999 放入我的列表中。我该如何防止这种情况?
def main():
grade = getScore()
abcGrade = getGrade(grade)
print(grade, "is an", abcGrade)
def getScore():
grade = []
while grade != -999:
grade = int(input("Enter grades (-999 ends): "))
return grade
def getGrade(grade):
best = 100
if grade >= best - 10:
return 'A'
elif grade >= best - 20:
return 'B'
elif grade >= best - 30:
return 'C'
elif grade >= best - 40:
return 'D'
else:
return 'F'
main()
这就是您要找的:
from statistics import mean
def main():
grades = getScores()
grade = mean(grades)
abcGrade = getGrade(grade)
print(grade, "is an", abcGrade)
def getScores():
grades = []
while True:
grade = int(input("Enter grades (-999 ends): "))
if grade == -999: return grades
grades.append(grade)
def getGrade(grade):
best = 100
if grade >= best - 10:
return 'A'
elif grade >= best - 20:
return 'B'
elif grade >= best - 30:
return 'C'
elif grade >= best - 40:
return 'D'
else:
return 'F'
main()
我已经尽可能少地修改了。您必须获得所有成绩并取平均值。您的代码中的问题是它没有 return 任何值或 append()
到列表中。
在这段代码中,您没有将用户输入的值添加到列表中grade
;你正在重新定义 grade
所以它不再是一个列表而是一个整数:
def getScore():
grade = []
while grade != -999:
grade = int(input("Enter grades (-999 ends): "))
return grade
这不会在严格的、类型安全的语言中运行,但是,嘿,它是 python :)
要修复它,重命名列表(grades
将是一个直观的名称)并使用 append()
添加 grade
的值。然后,returngrades
,而不是grade
得到一个列表。