web-dev-qa-db-ja.com

Pythonのreturnメソッドを使用して2点間の距離を計算する方法は?

私はまだpythonに慣れておらず、コツをつかもうとしています。簡単なreturnメソッドを学ぼうとしていますが、コツをつかめないようです。私は2点間の距離を見つけようとしてきましたが、これが今のところです。誰かがこれを理解するのを手伝ってくれるなら、それは非常に役に立ちます!ありがとう!

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
6
User1222

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
12
Fernando

結果を変数に格納します

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)
1
YXD

Eclipse PyDevでは、次のように実行できます。

import math
p1 = (2, 4)  
p2 = (6, 8)  
dist = math.hypot(p2[0] - p1[0], p2[1] - p1[1])

print (dist)
0
user3900428

あなたはほとんど正しい考えを持っています(あなたの関数ロジックは正しいです)が、関数の結果を使用するための構文は正しくありません。目的の結果を得るには、次のいずれかを実行できます。

関数呼び出しの結果を変数に保存します。

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)
0
shuttle87
print calculateDistance(2,4,6,8)

数学の関数のように考えてください。値が必要な位置に関数呼び出しを置きます。または、値を変数に格納することもできます。

dist = calculateDistance(2,4,6,8)
print dist

(これは数学のようには機能しません。)

「returnメソッド」が何であるかはわかりません。ここにあるのは単純な関数です。

ただし、実行しているのはそれを呼び出すことですが、結果には何もしていません。次に、結果ではなく実際の関数自体を出力します。

あなたはおそらく意味します:

distance = calculateDistance(2,4,6,8)
print distance

あるいは

print calculateDistance(2,4,6,8)
0
Daniel Roseman

だから私はあなたのエラーが何であるかわかりません。

番号が必要な場合:

_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つのパラメーターを持つオブジェクトが返されると思います。

幸運を

0
arthur.00

Python関数呼び出し(calculateDistance(2, 4, 6, 8))に遭遇し、関数を評価し、文字通りコード行calculateDistance(2, 4, 6, 8)を次の数値に置き換えることを想像してみてください。関数が戻ります。たとえば、_7_とします。

したがって、行にcalculateDistance(2, 4, 6, 8)を単独で入力すると、行に_7_を単独で入力するのと同じように機能します。 do変数に格納するなど、その値を持つものを実行する必要があります

dist = calculateDistance(2, 4, 6, 8)

またはすぐに印刷してください

print calculateDistance(2, 4, 6, 8)