avatar Bite 85. Write a score property

After Bite 19. Write a simple property let's write a bit more advanced one.

In this Bite you are presented with a NinjaBelt class that keeps track of scores and Ninja Belts earned (a very real scenario). Some setup code has been provided like the _score and _last_earned_belt variables and the getter and setter methods that make up the property.

The goal is to write a property called score that does the following:

  1. Make sure it can only be assigned an integer,
  2. It can not be assigned a score lower than the current score,
  3. It checks in BELTS if a new belt was earned (for example going from 49 to 50 you earn the yellow belt), if so it stores it in self._last_earned_belt.
  4. For each new score print a message:
    • If a new badge was earned: "Congrats, you earned {score} points obtaining the PyBites Ninja {rank} Belt" (where rank is the name of the belt titlecased, e.g. White, Yellow, etc.)
    • Else just the new score: "Set new score to {score}"

See the TESTS tab for more info. Good luck, have fun and keep calm and code in Python!

Login and get coding
go back Advanced level
Bitecoin 4X

188 out of 191 users completed this Bite.
Will you be Pythonista #189 to crack this Bite?
Resolution time: ~55 min. (avg. submissions of 5-240 min.)
Pythonistas rate this Bite 4.36 on a 1-10 difficulty scale.
» Up for a challenge? 💪

Focus on this Bite hiding sidebars, turn on Focus Mode.

Ask for Help