【发布时间】:2021-04-19 20:58:36
【问题描述】:
我正在尝试创建一个程序,它将: 提示用户输入将要输入的成绩数。 输入用户名,然后在两个提示中输入他们的成绩。 显示每个人的字母等级。 然后根据输入计算班级平均分、最高分和最低分。
我需要有一个convertGrade 的方法(从数字到字母)。
上面的每个方法都应该接受一个列表作为参数。
输出可能如下所示:
Welcome to the Final Grades Program
Enter the number of students: 3
Student's name: t
Student's mark (%): 32
Student's name: d
Student's mark (%): 78
Student's name: r
Student's mark (%): 89
t F
d B
r A
Class Average: 67
Highest Mark: 89
Lowest Mark: 32
但是,我不知道如何将分数转换为字母(因为 int 和 str 不能与 > 或
我乱七八糟的代码:
def intro():
name = []
mark = []
while True:
# Number of students
numStudents = input("Enter the number of students: ")
print ()
#Info (Name/grade)
for x in range(int(numStudents)):
stuName = input("Student's name: ")
stuMark = input("Student's mark (%): ")
name.append(stuName)
mark.append(stuMark)
print ()
if stuMark > 80:
print ("A")
elif stuMark > 70 and stuMark < 79:
print ("B")
elif stuMark > 60 and stuMark < 69:
print ("C")
elif stuMark > 50 and stuMark < 59:
print ("D")
elif stuMark < 50:
print ("F")
else:
print ("Could not calculate grade.")
# List
def list():
print ()
print("Student Name \t\t Student Grade")
print("---------------------------------------------")
for x in range(len(name)):
print(f"{name[x]} \t\t\t {mark[x]}")
def main():
print ("Welcome to the Final Grades Program")
print()
start = intro()
show = list()
main()
【问题讨论】:
-
虽然@Daniel Hao 为您的问题提供了更复杂和优雅的解决方案,但只需将每个条件句中的
stuMark替换为int(stuMark)就会给您正确的答案。您收到错误的原因是输入始终返回字符串类型值。要将值视为数字,您需要将 str 变量转换为 int。 -
list是 Python 内置的,所以尽量避免将它用于变量或函数名。您的程序中存在一些错误,我已尝试在帖子中解决这些错误。看看你能不能看懂。
标签: python python-3.x