3 回答

TA贡献1801条经验 获得超8个赞
不幸的是,Python无法实现您想要的(这使得Python对命令行一线程序几乎无效)。甚至显式使用括号也无法避免语法异常。您可以摆脱一系列用分号分隔的简单语句:
for i in range(10): print "foo"; print "bar"
但是,一旦添加了引入缩进的块的构造(如if),就需要换行。也,
for i in range(10): print "i equals 9" if i==9 else None
是合法的,可能与您想要的近似。
至于try ... except事情:没有,那将完全没有用except。try说“我想运行此代码,但可能会引发异常”。如果您不在乎该异常,请不要使用try。但是,一旦输入,您就说“我想处理潜在的异常”。该pass那么说,你要没有特别处理。但这意味着您的代码将继续运行,否则就不会继续运行。

TA贡献1850条经验 获得超11个赞
您可以使用内置的exec语句,例如:
exec("try: \n \t if sam[0] != 'harry': \n \t\t print('hello', sam) \nexcept: pass")
哪里\n是换行符,\t用作缩进(选项卡)。
另外,您应该计算使用的空间,以便缩进完全匹配。
但是,正如所有其他答案已经说过的那样,这仅在您确实需要将其放在一行上时才使用。
exec 这是一个非常危险的声明(尤其是在构建Web应用程序时),因为它允许执行任意Python代码。

TA贡献1821条经验 获得超4个赞
我建议不要这样做...
您所描述的不是理解力。
我强烈建议使用PEP 8 Python代码样式指南在复合语句上这样说:
通常不建议使用复合语句(同一行上的多个语句)。
是:
if foo == 'blah':
do_blah_thing()
do_one()
do_two()
do_three()
而不是:
if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()
以下是进行区分的示例理解:
>>> [i for i in xrange(10) if i == 9]
[9]
添加回答
举报