[英]How to calculate the distance between two points using return methods in python?
我对 python 还是个新手,一直在努力掌握它。 我一直在尝试学习简单的返回方法,但我似乎无法掌握它。 我一直在试图找到两点之间的距离,这就是我到目前为止所拥有的。 如果有人能帮我解决这个问题,那将非常有帮助! 谢谢!
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
为什么不使用 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
将结果存储在变量中
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
或直接打印:
def calculateDistance(x1,y1,x2,y2):
dist = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
return dist
print calculateDistance(2,4,6,8)
print calculateDistance(2,4,6,8)
把它想象成数学中的一个函数。 将函数调用放在您需要其值的位置。 或者,您可以将值存储在变量中:
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 调用计算距离时,你正在返回一个具有函数和 4 个参数的对象,我想。
祝你好运
想象一下 Python 运行到函数调用( calculateDistance(2, 4, 6, 8)
),评估该函数,并且实际上只是将代码行calculateDistance(2, 4, 6, 8)
替换为函数返回的数字,让我们说7
。
因此calculateDistance(2, 4, 6, 8)
在一行中单独键入calculateDistance(2, 4, 6, 8)
与在一行中单独键入7
作用相同。 您需要对该值执行某些操作,例如将其存储在变量中
dist = calculateDistance(2, 4, 6, 8)
或立即打印
print calculateDistance(2, 4, 6, 8)
在 Eclipse PyDev 中,您可以这样做:
import math
p1 = (2, 4)
p2 = (6, 8)
dist = math.hypot(p2[0] - p1[0], p2[1] - p1[1])
print (dist)
import math
x1 = int(input("Enter x co-ordinate of 1st point:"))
y1 = int(input("Enter y co-ordinate of 1st point:"))
x2 = int(input("Enter x co-ordinate of 2nd point:"))
y2 = int(input("Enter y co-ordinate of 2nd point:"))
def distance_calc(a1,b1,a2,b2):
d = math.sqrt((a2-a1)**2 + (b2-b1)**2)
print(f"\nDistance: {d}")
distance_calc(x1,y1,x2,y2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.