繁体   English   中英

如何使用python中的返回方法计算两点之间的距离?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM