我在编写的这段代码中遇到困难,它应该输出两点之间的斜率和距离。
在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)