Print and return are very different functions. When we define functions, we often won't need them to print anything. They will be called so we can perform a function and get some value back that will be used in the code elsewhere. They won't have to print.
Print is used to literally show the returned value. But if you print instead of return, the function isn't giving the answer back.
Imagine you told your employee to go count a stock item and write it down on a piece of paper. So they do. And then they come back and you say, "how many items were there?" And the employee says, "I don't know, I've already forgotten. I wrote it down on a piece of paper that's back in there."
That wouldn't be very useful for you. Good for anyone who goes into that stock room and looks at the piece of paper, but the employee didn't come back with anything. They just printed the answer out.
But if you tell the employee to go count the items and then return with the result, they won't write it down (so no one will see it), but they will come back with an answer.
So return brings back an answer you can use.
Whenever you call a function, you can always do it with the print statement, which will print out whatever the function returns - even if the function itself doesn't do any printing:
That would print out the returned value from the function. So it would print "10" on your screen. Both are useful functions, but need to be separate.
I pretty much just wrote this up so I could explain it to myself. You learn when you try and teach someone else.