Excellent_marks_2 ================= The marks of several students are saved in a dictionary (:class:`dict`) where the key is the name of a student and the value is a :class:`list` of 6 marks (:class:`float`): the first 5 of them correspond to the marks of 5 subjects of first grade and the 6th value is the average of the marks. We have also :class:`tuple` with the names of the 5 subjects of first grade (:class:`str`), in the same order that they appear in all the students lists in the dictionary. Example: .. literalinclude:: test-excellents.txt :language: python3 :lines: 3-9 Write the function :py:func:`cracks` that given a dictionary and a tuple as described and the name of a file (:class:`str`), creates a file with this name with those students who have excellent marks in the given dictionary. In this file there is a line for each student who has an excellent average mark and there is also a line for each student and subject with an excellent mark. As the data comes from a dictionary, lines in the file will be in the same arbitray order than elements in the given dictionary. A mark is excellent if it is between 9 and 10 (both included). The format of these two types of lines will be: | "The average mark of **name\_student** is **mark**" | "The mark of **name\_student** in **name\_subject** is **mark**" Examples: | "The average mark of Roser Puig Pi is 9.3" | "The mark of Joan Pera Pla in Programming is 9.5" | "The mark of Joan Pera Pla in Chemistry is 9.8" Save the function in file ``cracks.py``. .. note:: More tests are provided in the :download:`test-excellents.txt` .. rubric:: Solutions A solution of these functions is provided in the :download:`cracks.py `