On 12/21/2014 12:31 AM, Chris Angelico wrote:
On Sun, Dec 21, 2014 at 4:14 PM, CM <cmpyt...@gmail.com> wrote:
I ran it in IDLE with Python 2.7.8 and got:

Traceback (most recent call last):
   File "C:/Python27/helloworld.py", line 39, in <module>
     lambda _, __, ___, ____, _____, ______, _______, ________: _
   File "C:/Python27/helloworld.py", line 21, in <lambda>
     _))) + (_____ << ______) + (_ << ___)
OSError: [Errno 9] Bad file descriptor

Yes, because - like most "Hello world" programs - it attempts to write
to stdout. This interferes with IDLE and the way it captures output
for the graphical environment.

Just to be clear, writing to sys.stdout works fine in Idle.
>>> import sys; sys.stdout.write('hello ')
hello  #2.7

In 3.4, the number of chars? bytes? is returned and written also.

Whether you mean something different by 'stdout' or not, I am not sure. The error is from writing to a non-existent file descriptor. The os 'file descriptor functions are unix functions. Many but not all also work on Windows. I do not believe that was true on msdos. According to the os doc, they do not work on osx. Python io streams are not required to have a file descriptor.

--
Terry Jan Reedy

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

Reply via email to