74 lines
1.6 KiB
Python
74 lines
1.6 KiB
Python
|
|
#Ñèñòåìà àíàëèçà ðåéòèíãîâ ôèëüìîâ.
|
|
|
|
|
|
def parse_movie_line(line: str) -> dict:
|
|
|
|
return
|
|
|
|
def load_movies_from_file(filename: str) -> list[dict]:
|
|
|
|
return
|
|
|
|
def filter_movies_by_genre(movies: list[dict], genre: str) -> list[dict]:
|
|
|
|
return
|
|
|
|
def calculate_average_rating(movies: list[dict]) -> float:
|
|
|
|
return
|
|
|
|
def get_top_n_movies(movies: list[dict], n: int) -> list[dict]:
|
|
|
|
return
|
|
|
|
def get_movie_titles(movies: list[dict]) -> list[str]:
|
|
|
|
return
|
|
|
|
def count_movies_by_year(movies: list[dict]) -> dict[int, int]:
|
|
|
|
return
|
|
|
|
def find_most_voted_movie(movies: list[dict]) -> dict:
|
|
|
|
return
|
|
|
|
def genre_distribution(movies: list[dict]) -> dict[str, int]:
|
|
|
|
return
|
|
|
|
def save_movie_report(movies: list[dict]) -> str:
|
|
|
|
return
|
|
|
|
def main():
|
|
#Çàãðóçêà è îáðàáîòêà äàííûõ
|
|
movies = load_movies_from_file("data/movies.txt")
|
|
|
|
#Ôèëüòðàöèÿ ïî æàíðó Sci-Fi
|
|
scifi_movies = filter_movies_by_genre(movies, "Sci-Fi")
|
|
|
|
#Ñðåäíèé ðåéòèíã Sci-Fi
|
|
avg_scifi = calculate_average_rating(scifi_movies)
|
|
|
|
#Òîï-5 Sci-Fi ôèëüìîâ
|
|
top_scifi = get_top_n_movies(scifi_movies, 5)
|
|
|
|
#Ñîõðàíèíåíèÿ òîï-5 ôèëüìîâ â ôàéë
|
|
save_movie_report(top_scifi, "result/top5_scifi.txt")
|
|
|
|
#Íàçâàíèÿ ýòèõ 5 ôèëüìîâ
|
|
titles_top = get_movie_titles(top_scifi)
|
|
|
|
#Ñàìûé ïîïóëÿðíûé ôèëüì ïî ÷èñëó ãîëîñîâ
|
|
most_voted = find_most_voted_movie(movies)
|
|
|
|
#Ðàñïðåäåëåíèå ïî ãîäàì
|
|
year_counts = count_movies_by_year(movies)
|
|
|
|
#Ðàñïðåäåëåíèå ïî æàíðàì
|
|
genre_dist = genre_distribution(movies)
|
|
|
|
if __name__ == "__main__":
|
|
main() |