Как зациклить этот код, за каждые 50 баллов, набранных студентом, добавляется 1 звезда

#python

Вопрос:

Заранее приношу извинения, но я новичок в python и все еще учусь. И у меня возникла такая проблема: за каждые 50 очков, которые студент зарабатывает во время игры, к его информации будет добавлена 1 звезда. Но я, кажется, не могу этого сделать, вот мой код;

 class points:
    def __init__ (self, studentname, points, star):
        self.studentname = studentname
        self.points = points
        self.star = star

    def play (self, totalpoints):
        self.points  = totalpoints

        #every time the students score 50, they will have plus 1 star
        if self.points == 50:
            self.star  = 1

    def displayInfo (self):
        print (self.studentname)
        print(self.points)
        print(self.star)

student1 = points("Ana", 0, 0)
student2 = points("Sandra", 0, 0)

student1.displayInfo()
student2.displayInfo() #will display their information before playing

student1.play(10)
student2.play(5)
student1.play(20)
student2.play(10)
student1.play(30)
student2.play(30)
student1.play(10)
student2.play(5)
student1.play(20)
student2.play(10)
student1.play(30)
student2.play(30)

student1.displayInfo()
student2.displayInfo() #will display their information after playing
 

Комментарии:

1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

Ответ №1:

Вы добавляете только одну звезду, когда студент набирает ровно 50 баллов, и больше никогда. Что вы могли бы сделать в своем play() методе, так это обновлять количество звезд у игрока каждый раз, когда вы добавляете очки, вот так:

 def play(self, totalpoints):
    self.points  = totalpoints
    self.star = self.points // 50
 

При этом используется оператор Python floordiv ( // )