Python程序怎么让运行结果正常

各位程序猿,有谁知道怎么让最后运行结果正常?
怎么操作如下:运行开始,输入1,填写信息,填完后输2,输入成绩,然后不显示名字学号成绩
程序如下

class Student:
    def __init__(self):
        self.name=""   # 姓名
        self.Math=0    # 数学
        self.Eng=0     # 英语
        self.number=""     # 学号
        self.next= None

head = Student()   
head.next = None   
ptr = head         
select = 0

while select !=2:
    print("(1)新增 (2)离开:")
    try:
        select = int(input("请输入一个选项:"))
    except:
        print("输入错误请重新输入")
    if select == 1:
        new_data = Student()
        new_data.name = input("姓名:")
        new_data.number = input("学号:")
while True:
    try:
        new_data.Eng = int(input("英语成绩:"))
        new_data.Math = int(input("数学成绩 :"))
        break
    except:
        print("成绩信息必须输入数字类型")
        ptr.next = new_data
        new_data.next = None
        
    ptr = ptr.next
    print("\n\n")
    ptr = head.next
Msum = Esum = num = Student_no = 0

while ptr!=None:
    print("姓名 {} 学号 {} 英语成绩 {} 数学成绩{}".format(ptr.name, ptr.number, ptr.Eng, ptr.Math))
    num+=1
    Msum+=ptr.Eng
    Esum+=ptr.Math 
    ptr=ptr.next

    print("---------------------------------------------------")

题目或者目的也贴出来