我今天已经发布了一个问题,它有两个问题。其中一个解决得很好,然后就有点复杂了。所以请原谅我,但我将另一个问题单独发布,因为它混淆了一些窥视:
我是python新手,所以提前道歉。任何帮助深表感谢。我已经被这个代码困住了 2 周了,我的视野很狭隘,无法解决:
基本上,我们的任务是掌握面向对象的编程。不幸的是,我们不得不使用很多人不喜欢的“get”和“set”,但是,根据我们的导师,我们必须这样做。我们被告知 tp 创建一个程序,向用户呈现一个带有 3 个选项的屏幕。1.添加学生。2. 查看学生和 3. 删除学生.. 在我的 AddStudent 函数中,我必须要求用户输入 fname Lname age degree 学习 ID 号(这些是简单的位)以及每个模块的模块名称和等级,我已经设法创建了一个循环,它会一遍又一遍地要求用户输入模块和相应的等级,并且当用户在 modulname 字段中输入 -1 时会中断所述循环。但是,当尝试将其保存到名为 students[] 的列表中时... (它在我的代码的所有函数的最顶部,显然使它成为全局)它保存来自用户的所有输入:年龄名称等,但是当涉及到保存模块名称和等级时,它只保存最后一个输入而不是我需要的多个输入。我不确定它是在我的 AddStudent 函数中它没有保存还是在我的 ViewStudent 函数中:两者都在下面(记住我必须使用 GET 和 SET malarky);)
students[] # Global List
def addStudent():
print
print "Adding student..."
student = Student()
firstName = raw_input("Please enter the student's first name: ")
lastName = raw_input("Please enter the student's last name: ")
degree = raw_input("Please enter the name of the degree the student is studying: ")
studentid = raw_input("Please enter the students ID number: ")
age = raw_input("Please enter the students Age: ")
while True:
moduleName = raw_input("Please enter module name: ")
if moduleName == "-1":
break
grade = raw_input ("Please enter students grade for " + moduleName+": ")
student.setFirstName(firstName) # Set this student's first name
student.setLastName(lastName)
student.setDegree(degree)# Set this student's last name
student.setGrade(grade)
student.setModuleName(moduleName)
student.setStudentID(studentid)
student.setAge(age)
students.append(student)
print "The student",firstName+' '+lastName,"ID number",studentid,"has been added to the system."
………………………………………………………………………………
def viewStudent():
print "Printing all students in database : "
for person in students:
print "Printing details for: " + person.getFirstName()+" "+ person.getLastName()
print "Age: " + person.getAge()
print "Student ID: " + person.getStudentID()
print "Degree: " + person.getDegree()
print "Module: " + person.getModuleName()
print "Grades: " + person.getGrade()