The script comes from Mark Lutz's Programming Python. It is the second line of a script that will launch a python program on any platform.
import os, sys pyfile = (sys.platform[:3] == 'win' and 'python.exe') or 'python' Okay, run on a win32 machine, pyfile evaluates to python.exe That makes sense. Because the first condition is true and 'python.exe' is true. So the next comparison is 'python.exe' or 'python' Well, python.exe is true. So that value is returned to pyfile. Now. Run this on linux. The first condition evaluates sys.platform[:3] == 'win' as false. So, the next comparison should be 'False' or 'python' -- This is because 'and' returns the first false value. But, again, on linux pyfile evaluates to python.exe Where am I going wrong. And when will this statment make pyfile evaluate to 'python' ? -- http://mail.python.org/mailman/listinfo/python-list