这一行没有多大意义,但我想知道它为什么会引发语法错误:
x = 1; if x: with open("x.txt") as f: f.write(x)
如何在一行with
语句后执行if
阻止?
答案 0 :(得分:6)
with声明是一个红色的鲱鱼。甚至以下是语法错误:
>>> x = 1; if x: if x: print x
File "<stdin>", line 1
x = 1; if x: if x: print x
^
SyntaxError: invalid syntax
见这里:
http://docs.python.org/reference/compound_stmts.html
套件可以是与标题位于同一行的一个或多个以分号分隔的简单语句,位于标题的冒号后面,也可以是后续行中的一个或多个缩进语句。只有后一种形式的套件才能包含嵌套的复合语句;以下是非法的,主要是因为后面的
if
子句属于哪个else
子句并不清楚:if test1: if test2: print x
答案 1 :(得分:3)
您无需在bash脚本中提供单行输入。这是一个bash脚本,它将多行命令传递给python
$ less wibble.sh
python -c "
x = 1
if x:
if x:
print x
"
这就是它正在运行
$ bash wibble.sh
1