jokes.py 997 Bytes
from joke_types import Joke
from joke_library import get_n_jokes, rate_joke, tell_joke


def get_average_joke_rating(ratings: dict[int, int]) -> float:
    ...


def find_best_joke(jokes: dict[int, Joke], joke_ratings: dict[int, int]) -> Joke | None:
    best_joke_id: int = -1

    ...

    return jokes_by_id[best_joke_id]


def tell_jokes(n: int = 3) -> tuple[dict[int, Joke], dict[int, int]]:
    jokes = get_n_jokes(n)

    # Make a dictionary of jokes keyed by id
    jokes_by_id: dict[int, Joke] = {}
    ...

    ratings: dict[int, int] = {}

    # Tell each joke, going in reverse order, and rate and store user ratings
    while len(jokes) > 0:
        ...
        print()

    return jokes_by_id, ratings


jokes_by_id, joke_ratings = tell_jokes()

print()
print("The average rating you gave was..." +
      str(get_average_joke_rating(joke_ratings)))
print("The best joke was...")
best_joke = find_best_joke(jokes_by_id, joke_ratings)
assert best_joke is not None
tell_joke(best_joke)