python - 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
解决方案
如果问题是您为什么会收到此错误,那是因为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
推荐阅读
- docker - 读取 unix @->/var/run/docker.sock:读取:连接由对等方重置
- r - 具有正态分布和对数链接的 glm 模型
- sccm - 使用 32 位启动器运行 .cmd?
- azure-devops - 尝试将构建发布到 Nuget.org
- ios - CallKit:iOS 集成 - CXProviderConfiguration 不起作用
- excel - 如何循环多个文本框以设置透明度
- java - 搜索过滤器需要在 Active Directory 中查找具有 networkID 的用户
- html - 如何构建对角英雄部分?
- swift - 在两个原型之间划分单元格的数量
- c++ - 为什么 std::lock() 在使用我自己的 unique_lock 对象时会导致无限循环?