class Course: courses = [ Course('Advanced Mathematics', 4, 'Monday 8:30-10:10'), Course('College English', 3, 'Tuesday 2:30-4:10'), Course('Computer programming', 4, 'Wednesday 10:30-12:10'), Course('Computer Design', 3, 'Thursday 4:30-6:10') ] def __init__(self, name, credit, time): self.name = name self.credit = credit self.time = time self.courses = [] def add_course(self,course): self.courses.append(course) def print_courses(self): for course in self.courses: print(course.name) def choose_class(): print(''' 1.'Advanced Mathematics', 'credit:4', 'Monday 8:30-10:10')) 2.'College English', 'credit:3', 'Tuesday 2:30-4:10' 3.'Computer programming', 'credit:4', 'Wednesday 10:30-12:10' 4.'Computer Design', 'credit:3', 'Thursday 4:30-6:10''') ch = int(input('Please choose the class that you want:')) if ch == 1: Course.add_course(Course('Advanced Mathematics', 4, 'Monday 8:30-10:10')) elif ch == 2: Course.add_course(Course('College English', 3, 'Tuesday 2:30-4:10')) elif ch == 3: Course.add_course(Course('Computer programming', 4, 'Wednesday 10:30-12:10')) elif ch == 4: Course.add_course(Course('Computer Design', 3, 'Thursday 4:30-6:10')) Course.choose_class() Course.print_courses()
时间: 2023-06-16 08:07:35 浏览: 55
这段代码定义了一个课程类 `Course`,其中包含课程名称、学分和上课时间等属性,以及添加课程和打印已选课程的方法。其中 `courses` 列表包含了四门课程的信息。
在 `choose_class()` 函数中,通过打印课程信息列表,等待用户输入选择的课程,并根据用户的选择调用 `add_course()` 方法将该课程添加到已选课程列表中。
最后,调用 `print_courses()` 方法打印已选课程列表。但是,需要注意的是 `choose_class()` 函数中的最后一行 `Course.choose_class()` 应该是多余的,应该删除。
相关问题
class Course: courses = None def __init__(self, name, credit, time): self.name = name self.credit = credit self.time = time self.courses = [] def add_course(self,course): self.courses.append(course) def print_course(self): for course in self.courses: print(course.name) def choose_class(): print(''' 1.'Advanced Mathematics', 'credit:4', 'Monday 8:30-10:10')) 2.'College English', 'credit:3', 'Tuesday 2:30-4:10' 3.'Computer programming', 'credit:4', 'Wednesday 10:30-12:10' 4.'Computer Design', 'credit:3', 'Thursday 4:30-6:10''') ch = int(input('Please choose the class that you want:')) if ch == 1: Course.add_course('Advanced Mathematics') elif ch == 2: Course.add_course('College English') elif ch == 3: Course.add_course('Computer programming') elif ch == 4: Course.add_course('Computer Design')
这段代码有几个问题需要修正才能正确运行:
1. courses 属性应该是一个类属性,而不是实例属性,应该在类定义时初始化,而不是在 `__init__` 方法中定义。
2. `add_course` 方法需要传入一个 `Course` 类型的参数,而不是一个字符串。
3. `choose_class` 方法应该是一个静态方法或者类方法,而不是一个普通函数。
修改后的代码如下:
```
class Course:
courses = [
Course('Advanced Mathematics', 4, 'Monday 8:30-10:10'),
Course('College English', 3, 'Tuesday 2:30-4:10'),
Course('Computer programming', 4, 'Wednesday 10:30-12:10'),
Course('Computer Design', 3, 'Thursday 4:30-6:10')
]
def __init__(self, name, credit, time):
self.name = name
self.credit = credit
self.time = time
@classmethod
def add_course(cls, course):
cls.courses.append(course)
@classmethod
def print_courses(cls):
for course in cls.courses:
print(course.name)
@staticmethod
def choose_class():
print('''
1. Advanced Mathematics, credit:4, Monday 8:30-10:10
2. College English, credit:3, Tuesday 2:30-4:10
3. Computer programming, credit:4, Wednesday 10:30-12:10
4. Computer Design, credit:3, Thursday 4:30-6:10
''')
ch = int(input('Please choose the class that you want:'))
if ch == 1:
Course.add_course(Course('Advanced Mathematics', 4, 'Monday 8:30-10:10'))
elif ch == 2:
Course.add_course(Course('College English', 3, 'Tuesday 2:30-4:10'))
elif ch == 3:
Course.add_course(Course('Computer programming', 4, 'Wednesday 10:30-12:10'))
elif ch == 4:
Course.add_course(Course('Computer Design', 3, 'Thursday 4:30-6:10'))
```
这样,我们就可以通过调用 `Course.choose_class()` 方法来选择课程,调用 `Course.print_courses()` 方法来打印所有已选的课程了。
def choose_class(): catalog.add_course(Course('Advanced Mathematics', 'credit:4', 'Monday 8:30-10:10')) catalog.add_course(Course('College English', 'credit:3', 'Tuesday 2:30-4:10')) catalog.add_course(Course('Computer programming', 'credit:4', 'Wednesday 10:30-12:10')) catalog.add_course(Course('Computer Design', 'credit:3', 'Thursday 4:30-6:10')) print(''' 1.'Advanced Mathematics', 'credit:4', 'Monday 8:30-10:10')) 2.'College English', 'credit:3', 'Tuesday 2:30-4:10' 3.'Computer programming', 'credit:4', 'Wednesday 10:30-12:10' 4.'Computer Design', 'credit:3', 'Thursday 4:30-6:10''') ch = int(input('Please choose the class that you want:')) if ch == 1: Course.add_course(catalog.courses[0]) elif ch == 2: Course.add_course(catalog.courses[1]) elif ch == 3: Course.add_course(catalog.courses[2]) elif ch == 4: Course.add_course(catalog.courses[3]) Course.print_course() catalog.print_courses()
这段代码看起来像是一个选课系统的代码,用户可以从一些课程中选择一个,并将其添加到一个课程列表中。其中 `catalog` 是一个课程目录对象,`Course` 是一个课程对象。
具体来说,这段代码定义了一个 `choose_class` 函数,该函数首先向课程目录中添加四个课程对象。然后它打印出这些课程的信息,并提示用户输入一个数字来选择他们想要的课程。如果用户选择了一个课程,那么该课程对象将被添加到一个 `Course` 类的类变量中,并打印出该课程以及所有已选课程的信息。最后,该函数还会打印出整个课程目录中的所有课程。
需要注意的是,该代码中有一些问题。首先,当用户选择一个课程时,应该将该课程对象添加到一个实例变量中,而不是一个类变量中。其次,在打印课程信息时,不应该调用 `Course.print_course()`,而应该调用课程对象的实例方法来打印它的信息。最后,在用户输入数字之前,应该先打印出一些提示信息,告诉用户应该输入什么样的数字。
阅读全文