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

在“ if”语句中设置多行条件的样式?

在“ if”语句中设置多行条件的样式?

慕田峪9158850 2019-11-04 15:31:44
有时我将ifs中的长条条件分解为几行。最明显的方法是:  if (cond1 == 'val1' and cond2 == 'val2' and      cond3 == 'val3' and cond4 == 'val4'):      do_something在视觉上不是很吸引人,因为动作与条件融为一体。但是,这是使用正确的4个空格的Python缩进的自然方法。目前,我正在使用:  if (    cond1 == 'val1' and cond2 == 'val2' and          cond3 == 'val3' and cond4 == 'val4'):      do_something但这不是很漂亮。:-)您能推荐一种替代方法吗?
查看完整描述

3 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

您不需要在第二条条件行上使用4个空格。可能使用:


if (cond1 == 'val1' and cond2 == 'val2' and 

       cond3 == 'val3' and cond4 == 'val4'):

    do_something

另外,不要忘记空白比您想象的更灵活:


if (   

       cond1 == 'val1' and cond2 == 'val2' and 

       cond3 == 'val3' and cond4 == 'val4'

   ):

    do_something

if    (cond1 == 'val1' and cond2 == 'val2' and 

       cond3 == 'val3' and cond4 == 'val4'):

    do_something

两者都相当丑陋。


也许丢了括号(尽管《风格指南》不鼓励这样做)?


if cond1 == 'val1' and cond2 == 'val2' and \

   cond3 == 'val3' and cond4 == 'val4':

    do_something

这至少使您与众不同。


甚至:


if cond1 == 'val1' and cond2 == 'val2' and \

                       cond3 == 'val3' and \

                       cond4 == 'val4':

    do_something

我想我更喜欢:


if cond1 == 'val1' and \

   cond2 == 'val2' and \

   cond3 == 'val3' and \

   cond4 == 'val4':

    do_something

这是《样式指南》,(自2010年起)建议使用括号。


查看完整回答
反对 回复 2019-11-04
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

在简并的情况下,我采用了以下内容:简而言之,其为AND或OR。


if all( [cond1 == 'val1', cond2 == 'val2', cond3 == 'val3', cond4 == 'val4'] ):


if any( [cond1 == 'val1', cond2 == 'val2', cond3 == 'val3', cond4 == 'val4'] ):

它可以刮掉几个字符,并清楚表明该条件没有任何微妙之处。


查看完整回答
反对 回复 2019-11-04
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

有人必须在这里提倡使用垂直空格!:)


if (     cond1 == val1

     and cond2 == val2

     and cond3 == val3

   ):

    do_stuff()

这使得每个条件都清晰可见。它还可以更清晰地表达更复杂的条件:


if (    cond1 == val1

     or 

        (     cond2_1 == val2_1

          and cond2_2 >= val2_2

          and cond2_3 != bad2_3

        )

   ):

    do_more_stuff()

是的,为了清楚起见,我们将权衡一些垂直房地产。海事组织值得。


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 409 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信