def Add2NumbersTogether(x,y):
try:
s = str(x) + '.'
y = float(s)
print(y)
return (x + y)
except:
return - 1
n = 90.09
v = 9
a = Add2NumbersTogether(n,v)
print(a)
答案 0 :(得分:6)
您正在尝试将90.09.
转换为浮点数。发生这种情况是因为语句s = str(x) + '.'
将90.09转换为字符串并将.
附加到其中。由于此字符串中有两个.
,当我们尝试将其转换为float时,将通过返回-1抛出,捕获和处理异常。
为了记录这就是为什么捕获所有异常是一个坏主意。您应该只捕获您期望并可以处理的例外情况。
答案 1 :(得分:0)
如果要添加到数字,示例代码可以是:
def Add2NumbersTogether(x,y):
return x+y
无需将x和y转换为字符串类型。
将数据转换为字符串类型(即str
)时,实际上是附加了两个字符串。
答案 2 :(得分:0)
这里的问题是,通过将Python解释为float的变量转换为字符串并将其添加到字符串.
,您将创建一些通常不再是数字的内容,并且无法将其转换回浮动。因此抛出异常。你可能不清楚的是,通过Python解释器传递变量
v = 90.09
它会自动将其存储为浮点数。据说,我不清楚为什么你会采用这样的路线来对两个数字项进行求和。