So, this is a question relating to scope. Scope is an idea that we want to encapsulate variables in a small little chunk, rather than letting anyone anywhere modify and use them. When you run a function, you create a closure - a new scope. Anything defined in that scope is only viable in that scope, unless you explicitly allow it to leave that scope.
There are two ways to let things leave scope- you can make the variables global (typically bad practice, since it can lead to weird bugs if you aren't careful) or you can return variables.
To return them, you just do exactly that- return is a statement just like print, except return immediately ends any function when it is hit (it's saying "This is what you wanted from the function, I'm done now"). You can return multiple things, typically as a tuple or a list.
def me():
# get your inputs
...
return myName, myAge, myHeight, myJob
And on the other end, you have to receive them
info_tuple = me()
info_tuple is now the data you collected- you can print just like you would, or you could print them one by one
print info_tuple
# OR
for info in info_tuple:
print info
Additionally, you don't have to catch the whole returned value as one tuple- python can unpack them for you:
myName, myAge, myHeight, myJob = me()
Will give you the same things, just named according to each rather than just the four ordered pieces of the tuple.