【问题标题】:Final Grades Program = doesn't print the actual list (Display their letter grade for each person)最终成绩计划 = 不打印实际列表(显示每个人的字母成绩)
【发布时间】:2021-04-19 23:33:29
【问题描述】:

我正在尝试创建一个程序,它将: 提示用户输入将要输入的成绩数 输入用户名,然后在两个提示中输入他们的成绩 显示每个人的字母等级 然后根据输入计算班级平均分、最高分和最低分

它应该是什么样子:

Welcome to the Final Grades Program

Enter the number of students: 2

Student's name: paige
Student's mark (%): 89

Student's name: mitzy
Student's mark (%): 78

Paige             A
Mitzy             B

但是,当我按 F5 时,它不会打印实际列表(显示每个人的字母等级),我不知道为什么或我做错了什么。这就是我所拥有的:

import bisect

def grading():
    if int(stuMark) > 80:
        print ("A")
        print ()

    elif int(stuMark) > 70 and int(stuMark) < 79:
        print ("B")
        print ()

    elif int(stuMark) > 60 and int(stuMark) < 69:
        print ("C")
        print ()

    elif int(stuMark) > 50 and int(stuMark) < 59:
        print ("D")
        print ()
         
    elif int(stuMark) < 50:
       print ("F")
       print ()

def intro():
    students = []
    marks = []

    while True:
        # Number of students
        numStudents = input("Enter the number of students: ")
        print ()

        #Info (Name/grade)
        for x in range(int(numStudents)):
            name = input("Student's name: ")
            mark = int(input("Student's mark (%): "))
            print ()
            students.append(name)
            marks.append(mark)

def class_list():
    name = []
    mark = []

    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()
    intro()
    class_list()

main()

【问题讨论】:

  • 我有两件事要问你能否分享你的实际输出以及为什么不在代码中的任何地方调用分级函数

标签: python python-3.x


【解决方案1】:

第一个问题是变量的范围。您的姓名、学生和分数列表应该是在程序开始时定义的全局变量。下一个问题是studentsname 列表的用途相同,应该统一。您的最后两个问题是,您没有以字母形式获得成绩,因为您没有调用 grading 函数,并且在要求输入时您有一个不必要的循环,该循环一直持续到程序被破坏并且永远不会继续输出成绩

这里是固定代码:

#Your global variables
marks = []
students = []

def grading(stuMark):
    if int(stuMark) > 80:
        return ("A")

    elif int(stuMark) > 70 and int(stuMark) < 79:
        return ("B")

    elif int(stuMark) > 60 and int(stuMark) < 69:
        return ("C")

    elif int(stuMark) > 50 and int(stuMark) < 59:
        return ("D")
         
    elif int(stuMark) < 50:
        return ("F")

    
def intro():

    # Number of students
    numStudents = input("Enter the number of students: ")
    print ()

    #Info (Name/grade)
    for x in range(int(numStudents)):
        name = input("Student's name: ")
        mark = int(input("Student's mark (%): "))
        print ()
        students.append(name)
        marks.append(mark)

def class_list():


    print ()
    print("Student Name \t\t Student Grade")
    print("---------------------------------------------")
    for x in range(len(students)):
        print(f"{students[x]} \t\t\t {grading(marks[x])}")


def main():
    print ("Welcome to the Final Grades Program")
    print()
    intro()
    class_list()

main()

输出:

Welcome to the Final Grades Program

Enter the number of students: 2

Student's name: paige
Student's mark (%): 89

Student's name: mitzy
Student's mark (%): 78


Student Name             Student Grade
---------------------------------------------
paige                    A
mitzy                    B

【讨论】:

  • 你也不需要 bisect 所以我删除了它
猜你喜欢
  • 2020-02-20
  • 1970-01-01
  • 2021-04-19
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 2021-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多