[Tutor] How to print out multiple lines
Daniel Yoo
dyoo@hkn.eecs.berkeley.edu
Sun, 7 Jan 2001 13:53:05 -0800 (PST)
> So that the newline characters are preserved, and when I print them
> out, they are printed to the screen?
>
> When I retrieved the news articles off the NNTP server, for instance, the
> message body was just one big long string, with some numeric code for the
> newlines. It was just a mess to read.
When you ask the interpreter for a string's value, you'll be getting its
"representation", that is, all the special characters like newlines will
be explicitely shown as escapes:
###
>>> x = "Hello\nWorld"
>>> x
'Hello\012World'
###
Python does this because, in many cases, it's useful to see what
particular escapes are within a string. However, asking for a string's
value isn't quite the same as printing it out:
###
>>> print x
Hello
World
>>>
###
Use "print". It will display things as you'd expect. Also, you can use
stdout.write() with a similar effect.
###
>>> from sys import stdout
>>> stdout.write(x)
Hello
World>>>
###
(side note: The main difference between stdout.write and print is that
print will add an extra newline after every call. Also, print is a
built-in statement --- it's not a function or expression, so it can't be
passed around or used within lambda. In Scheme terms, its a "special
form")