【问题标题】:How to assign grade from a list in python如何从python中的列表中分配等级
【发布时间】:2021-11-13 17:23:03
【问题描述】:

我正在创建一个程序,它接收用户并将他们存储在列表中并获取他们的分数,然后对他们进行评分。我已经完成了用户输入部分和标记以及它们的平均值,但我正在努力给他们评分并将其与他们的名字一起打印,所以它就像名字标记等级一样。如果有人可以帮助我,我将非常感谢这是我的代码

students=[] 
for i in range (2):
    x=(input("Enter Student Name. \n")) 
    students.insert(i,x)
    i+=1
print(students)



grades = []
for student in students:
    grade = eval(input(f"Enter the grade for {student}: "))
    grades.append(grade)

result = list(zip(students, grades))
print(result)


average = sum(grades) / len(grades)
print ( "Average is: " + str(average))
total = sum(grades)
# print ("Total is: " + str(total))
print("Highest marks", max(list(zip(grades, students))))
print("Lowest marks", min(list(zip(grades, students))))

## To do assign grades to each according to their marks

【问题讨论】:

  • 1) 为什么是students.insert(i,x)? 2)为什么eval(input(f"Enter the grade for {student}: "))
  • 1 因为我想招收大约 30 名学生。2 - 没什么问题,我只是从学生那里拿成绩
  • 1) append 就够了 2) 不需要eval 3) 不需要i+=1
  • 好的,谢谢,但这是更好的方法,但我想要什么,请你建议

标签: python python-3.x list


【解决方案1】:

我正在努力给他们评分并将其与他们的名字一起打印出来,这样它就像名字标记等级一样。

看下面 - 它使用 zip 和循环

names = ['Jack','Dan']
grades = [67,86]

def _get_grade(grade):
  if grade < 50:
    return 'C'
  elif grade >= 50 and grade <= 75:
    return 'B'
  else:
    return 'A'
for name,grade in zip(names,grades):
  print(f'Name: {name} - Grade: {_get_grade(grade)}')

【讨论】:

  • 不是这个等级,如果数字超过 80,我想像 A 等级一样打印字母等级
  • @Aliumer 知道了。查看更新的答案。
  • 谢谢你的工作
  • @Aliumer 很高兴我按摩帮助。请接受答案。
  • 再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多