2014-01-26 60 views
6

我對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 
+6

嘗試:'打印calculateDistance(2,4,6,8)';-) – mgilson

+0

謝謝!這工作!我不敢相信我自己沒有想到它 - – User1222

回答

0

你主要有正確的想法(你的功能邏輯是正確的),但是使用函數結果的語法是不正確的。爲了得到想要的結果,您可以執行下列操作之一:

保存函數調用中的變量的結果:

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

。結果存儲在一個變量

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 

或直接打印結果

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

認爲像數學函數。將函數調用放在需要它的值的位置。或者,你可以在一個變量的值存儲:

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

(這並不像數學工作。)

0

我不知道什麼是「迴歸法」是 - 你在這裏買到的簡單的功能。然而,你在做什麼,但是沒有對結果做任何事情:然後打印實際的函數本身,而不是結果。

你大概的意思是:

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

甚至

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

所以我不知道你是什麼錯誤。

如果你只想數量:

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

想象一下Python作爲運行到函數調用(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)

12

你爲什麼不使用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 
0

在Eclipse中的PyDev,你可以像在這裏:

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

print (dist) 
相關問題