如何在python中使用返回方法计算两点之间的距离?
我对python还是新手,一直在尝试掌握它的窍门。我一直在尝试学习简单的返回方法,但我似乎没有掌握它的窍门。 我一直在努力寻找两点之间的距离,这就是我目前所知道的。 如果有人能帮我解决这个问题,那将非常有帮助!谢谢大家!如何在python中使用返回方法计算两点之间的距离?,python,return,distance,Python,Return,Distance,我对python还是新手,一直在尝试掌握它的窍门。我一直在尝试学习简单的返回方法,但我似乎没有掌握它的窍门。 我一直在努力寻找两点之间的距离,这就是我目前所知道的。 如果有人能帮我解决这个问题,那将非常有帮助!谢谢大家! import math def calculateDistance(x1,y1,x2,y2): dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2) return dist calculateDistance(2,4
import math
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
calculateDistance(2,4,6,8)
print calculateDistance
您的想法基本正确(函数逻辑正确),但使用函数结果的语法不正确。要获得所需的结果,可以执行以下操作之一: 将函数调用的结果保存在变量中:
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
some_variable = calculateDistance(2,4,6,8)
print some_variable
dist = calculateDistance(2,4,6,8)
print dist
或直接打印:
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
print calculateDistance(2,4,6,8)
将结果存储在变量中
import math
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
distance = calculateDistance(2,4,6,8)
print distance
或者直接打印结果
import math
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
print calculateDistance(2,4,6,8)
把它想象成数学中的一个函数。将函数调用置于需要其值的位置。或者,您可以将值存储在变量中:
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
some_variable = calculateDistance(2,4,6,8)
print some_variable
dist = calculateDistance(2,4,6,8)
print dist
(这和数学不一样。)我不知道什么是“返回方法”——这里的函数很简单
不过,您正在做的是调用它,但没有对结果执行任何操作:然后打印实际函数本身,而不是结果
你可能是说:
distance = calculateDistance(2,4,6,8)
print distance
甚至
print calculateDistance(2,4,6,8)
所以我不确定你的错误是什么 如果您想要号码,只需:
def calcdist(x, y, x1, y1):
return math.sqrt((x-x1)**2 + (y2-y1)**2)
dist = calcdist(#, #, #, #)
print dist
现在您正在返回函数math.sqrt(…)
所以当你用2,4,6,8调用calculate distance时,你会返回一个具有函数和4个参数的对象,我想
祝你好运想象Python正在运行函数调用(
CalculateInstance(2,4,6,8)
),评估函数,并用函数返回的数字替换代码行CalculateInstance(2,4,6,8)
因此,单独在一行上键入CalculatedInstance(2,4,6,8)
与单独在一行上键入7
一样有效。您需要对该值执行一些操作,比如将其存储在变量中
import math
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
distance = calculateDistance(2,4,6,8)
print distance
dist=CalculatedInstance(2,4,6,8)
或者直接打印出来
打印计算距离(2,4,6,8)
为什么不使用math.hypot()来计算距离
>>> import math
>>> p1 = (3, 5) # point 1 coordinate
>>> p2 = (5, 7) # point 2 coordinate
>>> math.hypot(p2[0] - p1[0], p2[1] - p1[1]) # Linear distance
2.8284271247461903
在Eclipse PyDev中,您可以如下所示:
import math
p1 = (2, 4)
p2 = (6, 8)
dist = math.hypot(p2[0] - p1[0], p2[1] - p1[1])
print (dist)
尝试:
打印计算站(2,4,6,8)
;-)非常感谢。成功了!我不敢相信我自己没有想到--虽然这样做有效,但答案并没有解决问题中的问题-用户没有正确打印函数的返回值这一事实。此外,用户还特别提到编写一个返回值的函数,而用户打印它。