我第一次尝试用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 + "."
您得到
None
打印输出的原因是您正在打印student_display
的返回值,这是None
,因为它不返回任何内容。你已经在方法里面做了打印,不需要再做了。在您的
num_students
和ageLists
不起作用的原因是您需要在student_display
中添加一个global
关键字:但是,话虽如此,这样做实在是太差劲了。有很多方法可以解决这个问题,但是对于
^{pr2}$numStudents
的情况,您可以简单地创建一个学生列表,如下所示:然后按如下方式打印所有学生:
计算平均年龄:
相关问题 更多 >
编程相关推荐