Python Lambda函数不';t回程浮球

Python Lambda函数不';t回程浮球,python,python-3.x,lambda,Python,Python 3.x,Lambda,我已经编写了下面的代码来计算三角形的中心。这个代码应该是高尔夫代码。任何帮助都将不胜感激 d=lambda x,y:((x[0]-y[0])**2+(x[1]-y[1])**2)**0.5 e=lambda w,x,y,z:float(d(y,z)*x[w]+d(z,x)*y[w]+d(x,y)*z[w])/(d(x,y)+d(y,z)+d(z,x)) a、 b,c=eval(输入()) px,py=e(0,a,b,c),e(1,a,b,c) 打印('[%f,%f]'%(px,py)) 输入:

我已经编写了下面的代码来计算三角形的中心。这个代码应该是高尔夫代码。任何帮助都将不胜感激

d=lambda x,y:((x[0]-y[0])**2+(x[1]-y[1])**2)**0.5
e=lambda w,x,y,z:float(d(y,z)*x[w]+d(z,x)*y[w]+d(x,y)*z[w])/(d(x,y)+d(y,z)+d(z,x))
a、 b,c=eval(输入())
px,py=e(0,a,b,c),e(1,a,b,c)
打印('[%f,%f]'%(px,py))
输入:

([1,2],[2,2],[1,2])
预期产出:

[1.2928932188134525,1.7071067811865475]
实际产量:

[1.000000,2.000000]

Python正在正确地进行计算。要么你的逻辑错误,要么你的输入错误,要么你的预期输出错误。根据您的输入,
d
的唯一可能输出是
0
1
(两点之间的笛卡尔距离)。这样做,我们可以简单地
e
,查看它在第一次函数调用中可能输出什么

鉴于:

w = 0
x = [1, 2]
y = [2, 2]
z = [1, 2]
result = float(d(y,z)*x[w]+d(z,x)*y[w]+d(x,y)*z[w])/(d(x,y)+d(y,z)+d(z,x))
变成:

result = float(d([2, 2],[1, 2])*[1, 2][0]+d([1, 2],[1, 2])*[2, 2][0]+d([1, 2],[2, 2])*[1, 2][0])/(d([1, 2],[2, 2])+d([2, 2],[1, 2])+d([1, 2],[1, 2]))
result = float((1.*1 + 0.*2 + 1.*1) / (1. + 1. + 0))
result = float(2. / 2.)
result = float(1.)
result = 1. # not 1.2928932188134525
变成:

result = float(d([2, 2],[1, 2])*[1, 2][0]+d([1, 2],[1, 2])*[2, 2][0]+d([1, 2],[2, 2])*[1, 2][0])/(d([1, 2],[2, 2])+d([2, 2],[1, 2])+d([1, 2],[1, 2]))
result = float((1.*1 + 0.*2 + 1.*1) / (1. + 1. + 0))
result = float(2. / 2.)
result = float(1.)
result = 1. # not 1.2928932188134525
变成:

result = float(d([2, 2],[1, 2])*[1, 2][0]+d([1, 2],[1, 2])*[2, 2][0]+d([1, 2],[2, 2])*[1, 2][0])/(d([1, 2],[2, 2])+d([2, 2],[1, 2])+d([1, 2],[1, 2]))
result = float((1.*1 + 0.*2 + 1.*1) / (1. + 1. + 0))
result = float(2. / 2.)
result = float(1.)
result = 1. # not 1.2928932188134525

在这之后,您需要找出问题所在,因为您没有指定预期输出为何为预期输出。

您确定[1.000000,2.000000]不是正确答案吗?此代码:

d = lambda x,y: round(((x[0]-y[0])**2.0+(x[1]-y[1])**2.0)**0.5, 12)
e = lambda w,x,y,z: float(round((d(y,z)*x[w]+d(z,x)*y[w]+d(x,y)*z[w])/(d(x,y)+d(y,z)+d(z,x)),12))
a,b,c= input()
px,py=e(0,a,b,c),e(1,a,b,c)
print px, py
返回浮点数,例如:

输入:
([1.25325,2.34346],[2.25325,4.34346],[22.25325,22.34346])


《强>出:出:出:出:出:出:出:出:出:出:出:2.555596969.55963232329.5596329.5252525252525252488

如果你必须使用eval(你不应该),使用。如果你如果你必须使用。如果你的话,使用。如果你的话,使用。如果你要使用。如果你要用这个输出。使用。从口译员来看,使用。看到这个输出,使用。从口译员来看,使用。看到这个输出。从口译员的这个输出,使用。看到这个输出。从口译员来看,使用。从这个输出的输出。使用。从口译员中使用。使用。看到这个输出的输出:>>>>>>>>d=d=d=d=d=d=La姆达x,d=d)输出:1.2928932188134525>>e(1[1,1],[2,2],[1,2])输出:1.7071067811865475您使用的输入与问题中指定的输入不同。