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