如何在单行(python c)中使用if/else?

2024-04-26 05:52:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始学习python,并尝试在python-c中使用if/else语句,但一直出现无效语法错误。我想用python-c调用if/else是因为我想在bash脚本中使用if/else调用一些python模块。有可能吗?我想继续使用python-c而不是python-m?在

以下是我迄今为止所做的尝试

尝试1

python -c "if False: print 'not working';else print 'working'"
  File "<string>", line 1
    if False: print 'not working';else print 'working'
                                     ^
SyntaxError: invalid syntax

尝试2

^{pr2}$

尝试3

python -c "if False:;    print 'not working';else:;    print 'working'"
  File "<string>", line 1
    if False:;    print 'not working';else:;    print 'working'
             ^
SyntaxError: invalid syntax

关于如何解决这个问题有什么建议吗?在

如果我想用if | elif | elf | else之类的语句呢?在

提前谢谢!在


Tags: bashfalsestringiflinenot语句else
3条回答

简单点,使用三元形式:

$ python -c "print 'A' if False else 'B'"

使用条件表达式和打印函数:

C:\> python -c "from __future__ import print_function; print('not wo
rking') if False else print ('working')"
working

{cd1>对于一般用途来说,一个解不是真的。在

python -c '
if True:
  print "hello"
else:
  print "world"
'

当然,如果您确实想:

^{pr2}$

……但是,也很明显,这是一个非常糟糕的主意。在

如果你真的很想在shell中包装Python代码,为什么不使用函数呢?更好的是,为什么不在代码中使用引用的hereocs?(这样做可以使代码本身保持原样,通过argv传递参数)。在

python_argv_repr() {
  python - "$@" <<'EOF'
import sys
print sys.argv[1:]
EOF
}

相关问题 更多 >