首页 > 解决方案 > ValueError:无法将字符串转换为浮点数:'(1/2)**576'

问题描述

我正在尝试制作一个读取“raiz”(表示平方根)并写入“”(1/2)**”的程序,只是想得到 24 作为结果,但出现错误说我无法转换“( 1/2)**576" 转换为浮点数/整数。

def main(args):
    a = input("Qual expressão quer simplificar? \n")
    i = 0
    x = ""
    while i < len(a):
        c = a[i]
        r = a[i: i + 5]
        b = a[i: i + 4]
        g = a[i: i + 8]
        h = a[i: i + 7]
        if g == "raiz de ":
            c = "(1/2)**"
            i += 7
        elif h == "raiz de":
            c = "(1/2)**"
            i += 6
        elif b == "raiz":
            c = "(1/2)**"
            i += 3
        if r == "vezes":
            c= "*"
            i += 4
        i += 1
        x += c
    z = float(x)
    print(z)


    return 0

if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))
    enter code here

标签: pythonpython-3.x

解决方案


如果问题是您为什么会收到此错误,那是因为z = float(x). 您正在传入x,这是一个包含非十进制字符的字符串。在一种情况下,您试图转换"(1/2)**"为浮点数。

float()接受数字或字符串,但字符串必须是数字。

float('(1/2)**')
# ValueError: could not convert string to float: (1/2)**

float('2.5')
# 2.5

float(4/2)
# 2.0

推荐阅读