Simple day-of-week program I was doing the following exercise:

Create an algorithm which asks the user a number from 1 to 7, and each number represents a day on the week. For example, 1 represents Sunday, 2 represents Monday and so on. The user will type this number and the program will show them the name of the day on the week and if it's a business day or a weekend.

I tried to do it in a object-oriented way and using Python. Can someone please verify if my code is within the Python and object-oriented &quot;standards&quot;? Because I'm not sure whether it is, and I need a review.
Here's my code:
class DayOnWeek:
    ERROR_MESSAGE = 'Invalid weekday. Try again:'
    NUMBER_NAME_ASSOCIATIONS = {
        1: 'Sunday',
        2: 'Monday',
        3: 'Tuesday',
        4: 'Wednesday',
        5: 'Thursday',
        6: 'Friday',
        7: 'Saturday'
    }

    def __init__(self):
        self._day_number = 0
        self._day_name = None
        self._category = None

    @property
    def day_name(self):
        return self._day_name

    @property
    def category(self):
        return self._category

    @property
    def day_number(self):
        return self._day_number

    @day_number.setter
    def day_number(self, value):
        if 1 &lt;= value &lt;= 7:
            self._day_number = value
            self._day_name = DayOnWeek.NUMBER_NAME_ASSOCIATIONS[self._day_number]
        else:
            raise ValueError(DayOnWeek.ERROR_MESSAGE)

        if 2 &lt;= value &lt;= 6:
            self._category = 'Business day'
        else:
            self._category = 'Weekend'


class DayOnWeekInterface:

    def __init__(self):
        self._day_on_week = DayOnWeek()

    def request_day_number(self):
        while True:
            try:
                day_num = input('Type the number of the day on the week (ex: 1 - Sunday):')
                day_num = int(day_num)
                self._day_on_week.day_number = day_num
                break
            except ValueError:
                print(DayOnWeek.ERROR_MESSAGE)
        self.show_day_on_week()

    def show_day_on_week(self):
        day_num = self._day_on_week.day_number
        day_name = self._day_on_week.day_name
        day_category = self._day_on_week.category
        print(f'The day {day_num} is {day_name.lower()}')
        print(f'{day_name} is a {day_category.lower()}')


DayOnWeekInterface().request_day_number()
Your DayOnWeek object is mutable, allowing you to set the .day_number property.  For such a simple object is not a good idea.  An immutable object is better.
There are exactly 7 days of the week.  For a one-of-seven choice, the go-to data-storage structure is an Enum.  For example:
from enum import Enum

class DayOfWeek(Enum):
    Sunday = 1
    Monday = 2
    Tuesday = 3
    Wednesday = 4
    Thursday = 5
    Friday = 6
    Saturday = 7

    @property
    def weekend(self):
        return self in {DayOfWeek.Saturday, DayOfWeek.Sunday}

    @property
    def category(self):
        return 'Weekend' if self.weekend else 'Business day'

    @property
    def number(self):
        return self.value

Borrowing Reideerien's request_day_number() function you'd use the DayOfWeek enum like:
def main():
    day_no = request_day_number()
    day = DayOfWeek(day_no)

    print(f'Day {day.number} is {day.name}')
    print(f'{day.name} is a {day.category} day')

if __name__ == '__main__':
    main()