我正在关注python的在线课程,并坚持这项活动:
假设已经定义了distance2D(x1,y1,x2,y2)。使用它,定义一个函数trianglePerimeter(xA,yA,xB,yB,xC,yC),它计算三角的周长,其三个点是(xA,yA),(xB,yB)和(xC,yC)。 / p>
现在distance2D是计算两点之间距离的函数:
假设已经定义了斜边(a,b)。使用它,定义一个函数distance2D(x1,y1,x2,y2),它计算点(x1,y1)和点(x2,y2)之间的距离。
斜边只是计算直角三角形的斜边。该网站要求我使用distance2D函数来定义trainglePerimeter函数。
以下是我的代码。
def trianglePerimeter(xA,yA,xB,yB,xC,yC):
a = distance2D(xA,yA,xB,yB)
b=distance2D(xB,yB,xC,yC)
return a+b
除此之外,我尝试改变代码,似乎没有任何效果。有人请帮助我!
我收到错误消息:
在运行代码之前:我们定义了一个函数distance2D。 程序执行时没有崩溃。 平地机说: 运行trianglePerimeter(0,0,0,3,4,0)...错误:trianglePerimeter(0,0,0,3,4,0)的值为10.0,预期值为12.0
答案 0 :(得分:1)
输入三角形的边长为3,4和5.多边形的周长等于其边长的总和。对于这个三角形,那将是3 + 4 + 5或12.然而,你将两个边长相乘,然后从该产品中减去其中一个边长,为3 * 5-5或10.我做不知道你为什么这样做。只需获取每一侧的长度,然后将它们全部添加:
def trianglePerimeter(xA,yA,xB,yB,xC,yC):
a = distance2D(xA, yA, xB, yB)
b = distance2D(xB, yB, xC, yC)
c = distance2D(xC, yC, xA, yA)
return a+b+c
答案 1 :(得分:1)
见这个
import math
def distance2D(xA,yA,xB,yB):
return math.sqrt((xA-xB)*(xA-xB)+(yA-yB)*(yA-yB))
def trianglePerimeter(xA,yA,xB,yB,xC,yC):
return distance2D(xA,yA,xB,yB)+distance2D(xA,yA,xC,yC)+distance2D(xC,yC,xB,yB)
print trianglePerimeter(1,5,6,2,7,6)
16.0368200508
答案 2 :(得分:1)
我的代码最终是这样的:
a = 0
b = []
triangle = {
'v1': [input('Write the coordinates for the first vector: ') for x in range(2)],
'v2': [input('Write the coordinates for the second vector: ') for x in range(2)],
'v3': [input('Write the coordinates for the third vector: ') for x in range(2)]
}
for z, y in triangle.items():
for x in y:
a = int(x)**2 + a
b.append(a**(1/2))
a = 0
print(sum(b))
首先我给出了 a = 0 和 b = [] 以便我可以使用它们来添加向量长度。然后我创建了一个列表字典,每个列表包含一个二维向量。然后我使用 for 遍历每个列表,另一个 for 遍历列表中的每个值。然后我继续进行数学运算,并将值附加到另一个列表中 - b。 在查看 dict 中的所有列表后,我的代码打印了所有 b 列表值的总和。
请随时提出任何问题。
答案 3 :(得分:0)
要计算周长,请添加三边的距离。你的等式肯定不是那样做的。
def perimeter(xA,yA,xB,yB,xC,yC):
len_a = distance2D(xA,yA,xB,yB)
len_b = distance2D(xB,yB,xC,yC)
len_c = distance2D(xC,yC,xA,yA)
return len_a + len_b + len_c
对于给定方,您将正确地得到12的答案。