modify the constructor for the fraction class so that it checks to make sure that the numerator and denominator are both integers if either is not an integer the constructor should raise an exception in the definition of fractions we assumed that negative fractions have negative numerator and positive denominator using negative denominator would cause some of the relational operators to give incorrect results in generalthis is an unnecessary constraint modify the constructor to allow the user to pass negative denominator so that all of the operators continue to work properly research the __radd__ method how does it differ from __add__when is it usedimplement __radd__ repeat the last question but this time consider the __iadd__ method research the __repr__ method how does it differ from __str__when is it usedimplement __repr__ design class to represent playing card now design class to represent deck of cards using these two classesimplement favorite card game find sudoku puzzle in the local newspaper write program to solve the puzzle programming exercises