перевести двоичные периодические дроби в обыкновенную десятичную дробь

не могу найти проблему в программе: надо перевести двоичные периодические дроби в обыкновенную десятичную дробь

a = input()
k = 0
if ('(' in a):
    a = a.replace('(', '.')
    a = a.replace(')', '').split('.')
    k = 1
else:
    a.split('.')
b = int(a[0], 2)
if (k == 1 and len(a) != 2) or (k == 0 and len(a) == 2):
    k1 = -1
    s = 0
    for i in range(len(a[1])):
        s += int(a[1][i]) * 2 ** k1
        k1 -= 1
if (k == 1):
    s += (int(str(a[-1]),2) // ((2 ** len(a[-1])) - 1)) / 10
n = -1
l = 1
while n != 0:
    for i in range(1, l + 1):
        if (i / l) == b + s:
            print(i, l)
            n = 0
    l += 1

Ответы (0 шт):