Build a Media Catalogue - Step 25

Tell us what’s happening:

for step 25 all i am supposed to be doing is print movie1.doc. i have done that but i still get the message “You should print movie1.doc”.. my code is below what am i doing wrong? because i am unable to move ahead without completing
catalogue.add(series1)
series2 = TVSeries(‘Breaking Bad’, 2008, ‘Vince Gilligan’, 47, 5, 62)
catalogue.add(series2)

print(catalogue)
print(movie1.__doc__)    

except ValueError as e:
print(f’Validation Error: {e}')

Your code so far

class Movie:
    """Parent class representing a movie."""

    def __init__(self, title, year, director, duration):
        if not title.strip():
            raise ValueError('Title cannot be empty')
        if year < 1895:
            raise ValueError('Year must be 1895 or later')
        if not director.strip():
            raise ValueError('Director cannot be empty')
        if duration <= 0:
            raise ValueError('Duration must be positive')
        self.title = title
        self.year = year
        self.director = director
        self.duration = duration

    def __str__(self):
        return f'{self.title} ({self.year}) - {self.duration} min, {self.director}'

class TVSeries(Movie):
    def __init__(self, title, year, director, duration, seasons, total_episodes):
        super().__init__(title, year, director, duration)

        if seasons < 1:
            raise ValueError('Seasons must be 1 or greater')
        if total_episodes < 1:
            raise ValueError('Total episodes must be 1 or greater')
        
        self.seasons = seasons
        self.total_episodes = total_episodes

    def __str__(self):
        return f'{self.title} ({self.year}) - {self.seasons} seasons, {self.total_episodes} episodes, {self.duration} min avg, {self.director}'

class MediaCatalogue:
    def __init__(self):
        self.items = []

    def add(self, media_item):
        self.items.append(media_item)

    def __str__(self):
        if not self.items:
            return 'Media Catalogue (empty)'

        result = f'Media Catalogue ({len(self.items)} items):\n\n'
        
        for i, movie in enumerate(self.items, 1):
            result += f'{i}. {movie}\n'
        return result

catalogue = MediaCatalogue()

try:
    movie1 = Movie('The Matrix', 1999, 'The Wachowskis', 136)
    catalogue.add(movie1)
    movie2 = Movie('Inception', 2010, 'Christopher Nolan', 148)
    catalogue.add(movie2)

    series1 = TVSeries('Scrubs', 2001, 'Bill Lawrence', 24, 9, 182)
    catalogue.add(series1)
    series2 = TVSeries('Breaking Bad', 2008, 'Vince Gilligan', 47, 5, 62)
    catalogue.add(series2)

    print(catalogue)
    print(movie1.__doc__)    
    
except ValueError as e:
    print(f'Validation Error: {e}')

# User Editable Region



# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0

Challenge Information:

Build a Media Catalogue - Step 25

okay . managed to fix it. the print call needed to be outside the try block . clearly the instruction are not clear here . in all prev steps everything is happening within the try block

For future reference the darker area in the editor is where you should be editing. The cursor should be placed there at the beginning of the step.

Instructions could possibly use language like “After the try/except block…”

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.