Python Scoping Issue, переменные сбрасывают каждую итерацию цикла - PullRequest
0 голосов
/ 14 октября 2018

Следующий блок Python должен добавить две строки двоичных чисел.Переменные res_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

В начале каждой итерации цикла их значения равны '' и * 1007.* соответственно.Их значения изменяются во время блока цикла, но они сбрасываются.

Я пытался изменить их на переменные класса (self.res_str и self.carry) с теми же результатами.

Что вызываетэти переменные должны быть сброшены?

edit: забыл использовать вывод zfill

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...