Python范围问题,变量会在循环的每次迭代中重置

时间:2018-10-14 00:21:45

标签: python scoping

以下python块应添加两个二进制数字字符串。每次循环时,变量:prependres_str都会重置为其初始值。

carry

在循环的每次迭代开始时,它们的值分别为class Solution: def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str """ if len(a) < len(b): a.zfill(len(b)) elif len(a) > len(b): b.zfill(len(a)) res_str = '' carry = '0' for asub, bsub in reversed(list(zip(a, b))): print(res_str, carry) if asub == '1' and bsub == '1': res_str = '0' + res_str carry = '1' + carry elif asub == '1' or bsub == '1': res_str = '1' + res_str carry = '0' + carry else: res_str = '0' + res_str carry = '0' + carry print(res_str, carry) if '1' in carry: return self.addBinary(res_str, carry) else: return res_str s = Solution() s.addBinary('1', '11') # 0 # 0 10 # 0 # 1 00 # 1 ''。它们的值在循环块期间会更改,但会重置。

我尝试将它们更改为具有相同结果的类变量(0self.res_str)。

是什么导致这些变量被重置?

编辑:忘记使用self.carry的输出

0 个答案:

没有答案