【问题标题】:How to select duplicated code from if-statement?如何从 if 语句中选择重复的代码?
【发布时间】:2017-09-18 13:06:55
【问题描述】:

我有以下算法:

if <some1>:
   h += 1
elif <some2>:
   h += 0.5
   i += 1
else:
   i += 1

是否可以只做一次i += 1

【问题讨论】:

    标签: algorithm redundancy


    【解决方案1】:

    我想你要表达的逻辑是:

    if <some1>:
       h += 1
    else:
       i += 1
       if <some2>:
          h+= 0.5
    

    虽然它不会为你节省很多。

    【讨论】:

    • 精确秒 :) 恕我直言,只是缩进会在编写算法时控制嵌套。
    • 这仅适用于some2 不是some1 的“子集”,例如,如果some1A and B 并且some2B,那么h 可能最后以+= 1.5
    • 同意托比亚斯。已更新。
    【解决方案2】:

    是的,您可以将其移至else 部分:

    if <some1>:
       h += 1
    else:
       i += 1
       if <some2>:
          h += 0.5
       else:
    

    【讨论】:

      【解决方案3】:
      if <some1>:
         h += 1
      else 
         i +=1
         if <some2>:
           h += 0.5 
      

      请查收

      【讨论】:

        猜你喜欢
        • 2020-10-25
        • 1970-01-01
        • 2022-01-28
        • 1970-01-01
        • 1970-01-01
        • 2019-06-23
        • 2015-05-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多