The parameter is the name used in the the function definition. The argument is the value passed when the function is called. For example:
.... return x ** (1.0 / 3)
The name "x" is a parameter. Later in the code you might see:
r = cube_root(27)
The value 27 is an argument; a value passed to the function. The function will use that value for x when running the statements in the function body.
Edit: By the way, these definitions are shared with and probably inspired by the C programming language. Some other languages use "formal parameter" for the name in the function definition and "actual parameter" for the value in the function call, and some books and writers will use that terminology with every programming language--including Python, even though that's not what you'll find the Python's Language Reference document.
About the update: Yes, that's good enough for starters. But the parameter is really the *name* used in the function definition, used to refer to the data (and not the data itself.)
What I see in Automate the Boring Stuff (Chapter 3 - Functions) is: "A parameter is a variable that an argument is stored in when a function is called." And "variable" is a name that refers to a value, so that's really saing the same thing.