【问题标题】:How to keep variable in for loop and others'conditional statement wouldn't change it如何在for循环中保留变量,其他的条件语句不会改变它
【发布时间】:2017-01-26 03:09:31
【问题描述】:

当程序执行第二个if并更改P = 0时,它将执行下一个if。我知道这是错误的,但我很好奇如何保持变量 (P) 不变并且不影响 if 语句中的其他变量。

    """
    :type a: str
    :type b: str
    :rtype: str
    """
class Solution(object):

    def addBinary(self, a, b):
        c = ''
        P = 0
        for i,j in zip(range(len(a)-1, -1, -1),range(len(b)-1, -1, -1)):
            if a[i] + b[j] == '11':
                c = c + '0'
                P = 1

           if  a[i] + b[j] == '10' or a[i] + b[j] == '01' and P == 1:
               c = c + '0'
               P = 0
           if  a[i] + b[j] == '10' or a[i] + b[j] == '01' and P == 0:
               c = c + '1'
           if  a[i] + b[j] == '00' and P == 1:
               c = c + '1'
               P =0
           if  a[i] + b[j] == '00' and P == 0:
               c = c + '0'
        T = len(a) - len(b)
        if T > 0:
            c = c + a[:T]
        else:
            c = c + b[:T]
        return c[::-1]

【问题讨论】:

    标签: python if-statement conditional-statements


    【解决方案1】:

    使用elif(否则)。

    代替:

    if something:
        change_something()
    
    if something_else:
        change_something_else()
    

    做:

    if something:
        change_something()
    
    elif something_else:
        change_something_else()
    

    【讨论】:

      【解决方案2】:

      你不想使用elif吗?

      if  a[i] + b[j] == '10' or a[i] + b[j] == '01' and P == 1:
          c = c + '0'
          P = 0
      elif  a[i] + b[j] == '10' or a[i] + b[j] == '01' and P == 0:
          c = c + '1'
      elif  a[i] + b[j] == '00' and P == 1:
          c = c + '1'
          P =0
      elif  a[i] + b[j] == '00' and P == 0:
      

      【讨论】:

        猜你喜欢
        • 2021-09-25
        • 1970-01-01
        • 2018-07-02
        • 2016-01-16
        • 2022-01-24
        • 1970-01-01
        • 2017-06-21
        • 1970-01-01
        • 2020-09-09
        相关资源
        最近更新 更多