所以这门课我要做一个计算器。 除了除法函数,我什么都能用,每次运行它都会出错
Traceback (most recent call last):
File "C:\Python27\Calculator.py", line 43, in <module>
val3 = Mult(val1, val2)
File "C:\Python27\Calculator.py", line 17, in Mult
val1 = float(val1)
ValueError: invalid literal for float(): 4/
这是我的代码,我意识到我可能使用了很多不正确的方法来做一些事情,比如从字符串中取出操作数,但是我不知道其他的方法。在
^{pr2}$提前谢谢
您可以通过首先拆分操作以获得3个组件,然后将其分配到
operator
模块中的一个方法来避免大量的样板文件,例如:我建议将}替换为如下内容:
firstNu
和{然后分配如下:
^{pr2}$与您的方法相比的优势:
如果找不到给定的子字符串,}。Python认为}。你的if语句应该看起来更像:
find()
返回{-1
是一个“truthy”值(与0
、None
、[]
这些值是'false'),因此当找不到子字符串equat.find("\*")
时,equat.find("\*")
的计算结果是{发生此错误是因为,当您输入除法方程时,}的计算结果为},如果行是
equat.find("\*")
计算结果为-1
,即True
,firstNu
被运算符'*'
调用,而{-1
。Python通过从字符串末尾向后计数来处理负字符串索引(列表索引的处理方式相同),因此firstNu
返回{'4/5'
,则返回'4/'
。float()
不知道如何将'4/'
变成一个数字,所以它抛出您看到的错误。在您还应该将}替换为类似的
^{pr2}$firstNu
和{相关问题 更多 >
编程相关推荐