On 2/15/2016 8:05 AM, Veek. M wrote:
When I do at the interpreter prompt,
repr( open('/etc/motd', 'rt').read() )
i get # 1 #:

When posting questions here or at Stackoverflow or elsewhere, it is a really good idea to develop and post a 'minimal, complete, verifiable example' that demonstrates the behavior in question. In this case, the open and read calls are just noise. A string with a newline illustrates your question without distraction.

>>> s = '\n'
>>> len(s)
1
>>> len(str(s))
1
>>> len(repr(s))
4
>>> s
'\n'
>>> str(s)
'\n'
>>> repr(s)
"'\\n'"
>>> print(s)


>>> print(str(s))


>>> print(repr(s))
'\n'
>>>

For this question, 'at the interpreter prompt' is essential, so leaving the >>> prompt is a good idea. I did the above with 3.5.1 also in IDLE and got exactly the same result, which should be the case.

print('start')
s='\n'
print(s)
print(str(s))
print(repr(s))
print('add repr')
print(repr(s))
print(repr(str(s)))
print(repr(repr(s)))
print('end')

duplicates the collective >>> responses seen above and demonstrates, as Random832 said, that '>>> expr' prints repr(expr).

start




'\n'
add repr
'\n'
'\n'
"'\\n'"
end

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to