【发布时间】:2015-12-15 07:03:21
【问题描述】:
我正在研究 Python 中的类和 OOP 结构,试图解决以下问题:
给定一个文本文件的形式:
Name: [someName] Course: [someCourse] Name: [someName] Course: [someCourse] ...包含一名学生的 [NAME] 和该学生参加的 [COURSE] 学生。我们假设没有两个学生有相同的名字,因此:
Name: Anderson Course: Biology Name: Peter Course: History Name: Anderson Course: Mathematics表示安德森同时学习生物学和数学。
问题:
- 读取输入文件
- 提取学生姓名和课程
- 打印出特定学生所学课程的摘要
例如,基于上面示例文件的结果,应该 生成:
Student: Anderson Courses: Biology Mathematics Student: Peter Courses: History
我目前所拥有的:
我已经能够阅读该文件并提取有关姓名和课程的信息。我已将这些值添加到两个列表(数组)中,student_name 和 student_course。从上面的示例文本文件中,这将产生以下列表:
student_name = ["Anderson", "Peter", "Anderson"]
student_course = ["Biology", "History", "Mathematics"]
表示索引对应。也就是说,位于 student_name[i] 的学生参加位于 student_course[i] 的课程。
我还有一个结构如下的 Student 类:
class Student(object):
#Variables here
student_list = [] #empty list of students
def __init__(self, name, course):
self.name = name
self.course = course
def check_student(self, name, course):
"""
Checks if student (given by name) is already in student list.
Function already_exists() works!
"""
if(self.already_exists(self.name) == false): #If not in list
self.student_list.append(self.name) #Add student to list
##### NEED help HERE ####
#Add course to already existing Student.
else:
##### NEED help HERE ####
#Create student + add course.
这个想法是遍历 student_name 和 student_course 列表,以更新学生信息。也就是说,如果遇到新名称:将其添加到 student_list,并记下课程。相反,如果名称已经存在:只需将课程添加到学生。
问题:
对于如何将课程添加到现有学生对象或完全创建新学生的任何帮助,我们将不胜感激。
【问题讨论】:
标签: python list function class oop