文字列を印刷しているのではなく、文字列リテラルを印刷しています。それは文字列表現です:
>>> 'Hello\nWorld'
'Hello\nWorld'
>>> print 'Hello\nWorld'
Hello
World
>>> print repr('Hello\nWorld')
'Hello\nWorld'
Python インタラクティブ インタープリター (または IDLE) で変数をエコーするたびに、インタープリターは値をエコー バックします。
>>> var = 'Hello\nWorld'
>>> var
'Hello\nWorld'
ただし、値を出力すると同じ場所に出力されますが、まったく異なるアクションです。
>>> print var
Hello
World
たとえば、出力する関数を呼び出し、その関数が値を返した場合、両方が画面にエコーされます。
>>> function foo():
... print 'Hello\nWorld'
... return 'Goodbye\nWorld'
...
>>> foo()
Hello
World
'Goodbye\nWorld'
上記の例でHello
はWorld
、関数によって出力されましたが、関数'Goodbye\nWorld'
の戻り値であり、インタープリターがその表現の形で私にエコーバックしてくれました。