Michael J. answered 06/08/19
Mathematics and Computer Programming for Gifted Students
__str__ should return a user readable string representing the object.
__repr__ should return a machine readable string that can be used to completely recreate the object instance in memory. While this may be user readable for simple classes it can be cumbersome for a user to understand for complex classes.
I'm happy to help you dig further into this. Please contact me for a lesson online if you're interested.