ValueError:无法将字符串转换为float:'(1/2)** 576'

时间:2019-07-06 23:17:18

标签: python python-3.x

我试图制作一个程序,其内容为“ 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

1 个答案:

答案 0 :(得分:0)

如果问题是为什么要收到此错误,那是因为行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