#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
( //
)