在Python类中查找average和totalNum

2024-04-23 17:35:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我第一次尝试用Python编写一个使用类的程序,并且已经解决了大部分问题。在这个项目中唯一让我难堪的是,如何统计为该项目创建的学生人数。我想我可以创建一个变量“numStudents”并执行ole“x=x+1”,但由于某些原因它不能与类一起工作。有人知道解决办法吗?我还需要计算平均年龄,我的列表似乎不起作用。在

numStudents = 0
ageList = list()
class student(object):
    def __init__(self, name, stuID, age):
        self.name = name
        self.stuID = stuID
        self.age = age
    def student_display(self):
        numStudents = numStudents + 1
        stuID = str(self.stuID)
        age = str(self.age)
        ageList.append(self.age)
        print "This student's name is " + self.name + ", his student ID is " + stuID + ", and his age is " + age + "."

student1 = student("Justin", 10001, 21)
student2 = student("Charles", 10002, 23)
student3 = student("Erik", 10003, 20)
student4 = student("The Doctor", 99999, 22)
student5 = student("Steven", 10004, 21)
student6 = student("Melissa", 10005, 19)
student7 = student("Sarah", 10006, 21)
student8 = student("Eren", 10007, 18)
students = 0                                           #Can't figure out how to get rid of the "NONE" that keeps printing after every statement

print student1.student_display()
print student2.student_display()
print student3.student_display()
print student4.student_display()
print student5.student_display()
print student6.student_display()
print student7.student_display()
print student8.student_display()

print "There are " + numStudents + " students in the class."
average = 0
sum = 0
for n in ageList:
    sum = sum + n
average = sum/len(ageList)
print "The average age in the class is " + average + "."

Tags: thenameinselfageisdisplaystudent
1条回答
网友
1楼 · 发布于 2024-04-23 17:35:46

您得到None打印输出的原因是您正在打印student_display的返回值,这是None,因为它不返回任何内容。你已经在方法里面做了打印,不需要再做了。在

您的num_studentsageLists不起作用的原因是您需要在student_display中添加一个global关键字:

def student_display(self):
    global numStudents
    global ageLists
    numStudents = numStudents + 1

但是,话虽如此,这样做实在是太差劲了。有很多方法可以解决这个问题,但是对于numStudents的情况,您可以简单地创建一个学生列表,如下所示:

^{pr2}$

然后按如下方式打印所有学生:

for student in students:
    student.student_display()

计算平均年龄:

ages = [student.age for student in students]
print('Average Age Is: {}'.format(sum(ages)/len(ages))

相关问题 更多 >