A small program is needed to simulate a gradebook for 5 stud…
A small program is needed to simulate a gradebook for 5 students across 4 classes and summarize it with row and column averages (an “average matrix”). Requirements: At the very top of your code, write import random and random.seed(42). This makes your “random” grades identical every time the program runs, which is required so your output can be graded — do not change or remove this line, and do not call any other random functions before it. Create students = [“Alice”, “Ben”, “Chloe”, “Dmitri”, “Elena”] and classes = [“Math”, “Science”, “English”, “History”] exactly as written. Build a grade for every (student, class) pair using random.randint(60, 100). Generate them in this exact nested order: for each student (in the order given), loop through each class (in the order given) and generate one grade. Store the results in a nested list called grades, where grades[i][j] is student i’s score in class j. Print the raw grade table (one row per student, one column per class — any readable layout is fine). Compute each student’s average across their 4 classes (their row average). Compute each class’s average across the 5 students (its column average). Print a final “average matrix”: the same table, but with an extra “Average” column showing each student’s row average, and an extra final row showing each class’s column average (and the overall class average in the corner is a nice touch, but not required). Exact expected grades and averages (with random.seed(42), looping students-outer / classes-inner): Student Math Science English HistoryAlice 100 67 61 77Ben 75 74 68 66Chloe 94 65 97 87Dmitri 62 61 65 73Elena 74 92 98 61 — Average Matrix —Student Math Science English History AverageAlice 100 67 61 77 76.2Ben 75 74 68 66 70.8Chloe 94 65 97 87 85.8Dmitri 62 61 65 73 65.2Elena 74 92 98 61 81.2Class Avg 81.0 71.8 77.8
Read Details