On Tue, Jan 14, 2014 at 02:42:07AM -0500, Christian Alexander wrote: > Hello Tutorians, > > Why does the interactive prompt not recognize escape sequences in strings? > It only works correctly if I use the print function in python 3. > > >>> "Hello\nWorld" > "Hello\nWorld"
I'm afraid that you are misinterpreting what you are seeing. Regardless of whether you use the interactive prompt or not, or whether you print the string, the string "Hello\nWorld" contains the words "Hello" and "World" separated by a newline. What happens when you display the string? When you use print, it gets printed to the screen, which means that newline actually causes a new line. In addition, tabs cause the text to be indented. So: py> s = "Hello\nWorld\t!" py> print s Hello World ! But in addition to just printing the string, we can print the *representation* of the string, which shows control characters in escaped form and includes quotation marks: py> print repr(s) 'Hello\nWorld\t!' You'll notice that the repr() of the string is just like what you typed as a string literal, except that I typed double quotes " and Python uses single quotes ' by default. What happens if we don't use print, but just enter the string? py> s 'Hello\nWorld\t!' The interactive interpreter chooses to display the repr() of the string, rather than print the string. The reason for this is that, in general, it is more useful to see the repr() while debugging or experimenting interactively, and if you wish to the see the printed version of the string, it's easy enough to use print. Note: my examples above are using Python 2. In Python 3, you need to use round brackets after the print, e.g. "print(s)". -- Steven _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor