我试图将输入传递给函数但我的代码有问题。
我有每个点的(x,y)坐标的位置。
如果有人帮我修改我的程序,我将不胜感激。
def distance(ball1,ball2):
d=(((ball2[0]-ball1[0])**2)+((ball2[1]-ball1[1])**2))**(1/2)
print(float(d))
ball1=[2,10]
ball2=[3,5]
distance(ball1,ball2)
错误已修复,但输出不准确,结果始终为1。
请你帮我解决一下吗?感谢
答案 0 :(得分:1)
问题是您使用ball2
访问ball2[2]
中的第三个元素。但是,列表中只有两个元素。您需要将其更改为ball2[1]-ball1[1]
:
def distance(ball1=[],ball2=[]):
d=(((ball2[0]-ball1[0])**2)+((ball2[1]-ball1[1])**2))**(1/2)
print(d)
答案 1 :(得分:0)
def distance(ball1=[], ball2=[]):
d = (((ball2[0] - ball1[0]) ** 2) + ((ball2[1] - ball2[1]) ** 2)) ** (1 / 2)
print(d)
ball1 = [1, 1]
ball2 = [3, 3]
distance(ball1, ball2)
答案 2 :(得分:0)
您无法访问第三个元素。
代码:
def distance(ball1=[],ball2=[]):
d=(((ball2[0]-ball1[0])**2)+((ball2[1]-ball1[1])**2))**(1/2)
print(d)
ball1=[1,1]
ball2=[3,3]
distance(ball1,ball2)
答案 3 :(得分:0)
1结果是由于分裂。
在Python 2中,1/2
使用0
结果进行整数除法。
在Python 3 1/2
中,作品计算为0.5
只需在代码中将1/2
替换为0.5
。