So konvertieren Sie einen String, der einen binären Bruch darstellt, in eine Zahl in Python

Nehmen wir an, wir haben einen String, der einen binären Bruch darstellt, wie zum Beispiel:

".1"

Als Dezimalzahl ist dies 0,5. Gibt es in Python eine Standardmethode, um von solchen Zeichenfolgen zu einem Zahlentyp zu wechseln (es ist nicht unbedingt wichtig, ob es sich um Binär- oder Dezimalzeichen handelt)?

Für eine ganze Zahl ist die Lösung einfach:

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

int () verwendet ein optionales zweites Argument, um die Basis bereitzustellen, float () jedoch nicht.

Ich suche etwas funktionell Äquivalentes (denke ich) dazu:

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 denken das tut was ich will, obwohl ich vielleicht einige Randfälle verpasst habe.

Gibt es eine integrierte oder standardmäßige Methode, um dies in Python zu tun?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage