为了账号安全,请及时绑定邮箱和手机立即绑定

如何将多个语句放在一行中?

如何将多个语句放在一行中?

手掌心 2019-12-26 11:09:17
我不确定要确切地考虑这个问题的标题,如果有点不确定,编码高尔夫似乎是合适的。我对python有一点了解,但似乎很难“阅读”。我的理解方式可能与以下代码相同:for i in range(10): if i == 9: print('i equals 9')这段代码比当前的理解方法更容易阅读,但是我注意到您不能在一行中包含两个“:”……这也给我带来了……我的问题:有什么办法可以使下面的示例进入一行。try:    if sam[0] != 'harry':        print('hello',  sam)except:    pass像这样的东西会很棒:try: if sam[0] != 'harry': print('hellp',  sam)except:pass但是我又遇到了冲突的':',我也很想知道是否有一种方法可以不加例外地进行尝试(或类似的尝试),我似乎完全没有意义,我只需要在其中放入else:pass即可。它是一条浪费的线路。谢谢您的输入...这里有一个笑脸:D

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那么说,你要没有特别处理。但这意味着您的代码将继续运行,否则就不会继续运行。


查看完整回答
反对 回复 2019-12-26
?
慕盖茨4494581

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代码。


查看完整回答
反对 回复 2019-12-26
?
收到一只叮咚

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]


查看完整回答
反对 回复 2019-12-26

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号