在python interpreter -c命令中使用条件

我试图弄清楚如何将以下条件语句传递给python解释器的命令选项(-c).

if sys.maxsize > 2**32:
    print '64'
else:
    print '32'

64

但是,我不断得到语法错误,如下所示:

>python -c "import sys; if sys.maxsize > 2**32: print '64' else: print '32';"
  File "<string>", line 1
    import sys; if sys.maxsize > 2**32: print '64' else: print '32';
                 ^
SyntaxError: invalid syntax

我发现很难找到这种用法的好例子.我一定在这里错过了一些大事……

最佳答案
在(非常)简短的搜索之后,我无法在任何地方找到这个文档,但似乎-c严格地使用表达式(即,可以出现在赋值的RHS上的东西),而不是语句.要在你的情况下解决这个问题,你需要做两件事:

>使用print function(函数调用是表达式)而不是print语句
>使用Python的a if b else c conditional expression

这给你:

lvc@tiamat:~$python -c "from __future__ import print_function; import sys; print('64' if sys.maxsize > 2**32 else '32')"
64

转载注明原文:在python interpreter -c命令中使用条件 - 代码日志