On 27/09/2010 17:11, Thierry Tung wrote:
Hello tutor at python.org.

How can I write strings to the console in a way that will give the same result 
in Python 3 and Python 2?

I tried sys.stdout.write('hello') on Microsoft vista.

with python 3.1.2
sys.stdout.write('hello')
hello5


with python 2.7
sys.stdout.write('hello')
hello>>>

Why is the string length appended to the output with python 3.1.2?

Because in Py 3.x the .write method returns the length written.
The interpreter echoes the non-None return value of any function
to stdout. This won't happen when you run the program -- you won't
get a stream of numbers. To avoid it happening in the interpreter,
simply assign the return value:

  n = sys.stdout.write("hello")

In Python 2.x n will be None; in Python 3.x it will be 5

TJG
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to