Como converter uma string representando uma fração binária em um número em Python

Vamos supor que tenhamos uma string representando uma fração binária como:

".1"

Como um número decimal, isso é 0,5. Existe uma maneira padrão em Python para ir de tais seqüências de caracteres para um tipo de número (se é binário ou decimal não é estritamente importante).

Para um inteiro, a solução é direta:

int("101", 2)
>>>5

int () usa um segundo argumento opcional para fornecer a base, mas float () não.

Eu estou procurando algo funcionalmente equivalente (eu acho) para isso:

def frac_bin_str_to_float(num):
    """Assuming num to be a string representing
    the fractional part of a binary number with
    no integer part, return num as a float."""
    result = 0
    ex = 2.0
    for c in num:
        if c == '1':
            result += 1/ex 
        ex *= 2
    return result

I pensar que faz o que eu quero, embora eu possa ter perdido alguns casos extremos.

Existe um método interno ou padrão de fazer isso em Python?

questionAnswers(2)

yourAnswerToTheQuestion