I was just playing around with the id() function & noticed that if you pass a value that you haven't assigned to a variable yet, instead of giving an error it returns a memory address. So does the id() function assign that value to an empty memory location?
>>> print id(18)
14569728
>>> b = 18
>>> print id(b)
14569728
>>> print id('check')
140297315282112
>>> c = 'check'
>>> print id(c)
140297315282112