2 Answers
+ 2
Every system established on some rules.
Python Program is also follow some rules.
It's Rule in Python to put a variable or argument in between Parentheses (), when we put a in print(a), Python interpreter can understand what to do,
but if we put without parentheses or (), interpreter can't understand what is it and so it gives error.
+ 2
When you type just 'a', it is same as a.__repr__ which is representation. Interpreter display it just as it is (no formatting). When you use print function, it automatically convert to string, like print(str(a)). You can represent just like above with print. Try print(repr(a)). Then 'a' will be just representation.