Python 不向函数中的变量返回值



我在编写的这段代码中遇到困难,它应该输出两点之间的斜率和距离。

在python可视化工具中查看它,它似乎能够计算值,但是,距离变量无法保存其值。它被斜率的值覆盖。

我无法理解如何在函数定义中使用 return,因为这似乎是问题所在。

def equation(x,y,x1,y1):
distance=math.sqrt(((x-x1)**2)+((y-y1)**2))
if x!=x1 and y1!=y:
slope=(y1-y)/(x1-x)
return slope
else:
slope='null'
return slope
return distance
slope=equation(1,3,2,1)
print(slope)
distance=equation(1,3,2,1)
print(distance)

此处代码的输出对于两个变量是相同的。

如果您希望两者都是不同的函数调用,即slope=equation(1,3,2,1)distance=equation(1,3,2,1),然后尝试第一种方法,如果您希望在单行中调用两者,即slope, distance=equation(1,3,2,1)然后尝试第二种方法:

第一种方法

import math
def equation(x,y,x1,y1,var):
if var == "slope":
if x!=x1 and y1!=y:
slope=(y1-y)/(x1-x)
return slope
else:
slope='null'
return slope
elif var == "distance":
distance=math.sqrt(((x-x1)**2)+((y-y1)**2))
return distance
slope=equation(1,3,2,1,"slope")
print(slope)
distance=equation(1,3,2,1,"distance")
print(distance)

第二种方法

def equation(x,y,x1,y1):
distance=math.sqrt(((x-x1)**2)+((y-y1)**2))
if x!=x1 and y1!=y:
slope=(y1-y)/(x1-x)
return slope,distance
else:
slope='null'
return slope,distance
slope, distance=equation(1,3,2,1)
print(distance)
print(slope)

return 语句在遇到函数时退出函数。从函数返回元组。

def equation(x,y,x1,y1):
# calculate slope and distance
return slope, distance
slope,distance = equation(1,3,2,1)
print(slope)
print(distance)

相关内容

  • 没有找到相关文章

最新更新