Hello there I’m starting to learn the Python language and in the lesson about numbers in Python, (here is the 1st link -https://www.codecademy.com/paths/computer-science/tracks/cspath-intro/modules/cspath-python-syntax/lessons/learn-python-syntax/exercises/numbers) I found in the reference to that lesson a python’s documentation 2nd link (15. Floating Point Arithmetic: Issues and Limitations — Python 3.9.1 documentation) a problematic sentences.

This explanations are very nice and understandable but i have problem with basically two sentences that are not so clear in that referenced link (2nd link)

First: Quote from the 2nd link “Since all of these decimal values share the same approximation, any one of them could be displayed while still preserving the invariant `eval(repr(x)) == x”

As I understand repr() function changes the float to a specific one from the pool of values that are represented using the same binary approximation, but what is the role of the eval() then? Preserving invariant meaning that the equality states true?

Second: Quote from the same site 2nd link “The errors in Python float operations are inherited from the floating-point hardware, and on most machines are on the order of no more than 1 part in 2**53 per operation.”

First part of that sentence is clear but the troubling one is the second half of it talking about the magnitude or order of that error and calling it to be 1 part in 2**53 per operation. What does that mean? What they mean by part? I assume it means that the error is small but where does this numbers come from?

I’ll appreciate all your help