我用类编写了这个python脚本,其中包含学生姓名、学生编号、学生课程及其成绩。你知道吗
#!/usr/bin/env python3
class Student:
def __init__(self, name, number):
self.name = name
self.number = number
self.courses = {}
def displayStudent(self):
return 'Student Name: ' + self.name + '\n' + 'Student Number: ' + str(self.number)
def addGrade(self, course, grade):
self.courses[course] = grade
def displayGPA(self):
if len(self.courses) == 0:
errormsg = print('oops')
return errormsg
else:
gpa = 0.0
for course in self.courses.keys():
gpa = gpa + self.courses[course]
return 'GPA of student ' + self.name + ' is ' + str(gpa / len(self.courses))
def displayCourses(self):
return list(self.courses.keys())
if __name__ == '__main__':
# Create first student object and add grades for each class
student1 = Student('John', '013454900')
student1.addGrade('uli101', 1.0)
student1.addGrade('ops235', 2.0)
student1.addGrade('ops435', 3.0)
# Create second student object and add grades for each class
student2 = Student('Jessica', '123456')
student2.addGrade('ipc144', 4.0)
student2.addGrade('cpp244', 3.5)
student2.addGrade('cpp344', 0.0)
# Display information for student1 object
print(student1.displayStudent())
print(student1.displayGPA())
print(student1.displayCourses())
# Display information for student2 object
print(student2.displayStudent())
print(student2.displayGPA())
print(student2.displayCourses())
执行后,它成功地显示以下输出:
Student Name: John
Student Number: 013454900
GPA of student John is 2.0
['ops235', 'ops435', 'uli101']
Student Name: Jessica
Student Number: 123456
GPA of student Jessica is 2.5
['ipc144', 'cpp344', 'cpp244']
我的问题是,在displayCourses(self):
函数下,我只想显示GPA不是0.0
的课程。就像这样…没有课程cpp344
python3 lab6a.py
Student Name: John
Student Number: 013454900
GPA of student John is 2.0
['ops435', 'ops235', 'uli101']
Student Name: Jessica
Student Number: 123456
GPA of student Jessica is 2.5
['cpp244', 'ipc144']
您应该更新
displayCourses()
方法。像这样的这将检查每个课程的
self.courses[k]
值,并且仅当该键的值大于零时才将课程包含在返回的列表中。你知道吗相关问题 更多 >
编程相关推荐