W
waltbrad
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' ?
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' ?