我的代码输出错误,我不明白为什么

时间:2018-12-20 13:37:33

标签: python

我正在尝试计算内容,但是代码输出错误

我什至尝试将操作分为多个部分,一次也不做,我尝试通过设置和int()输出来完成,但是它也不起作用

import math

x_coo = 20
y_coo = 30
x = 50
y = 80

def distance(x_coo,y_coo,x,y):
    dist = math.sqrt((e.x_coo-a.x)**2 + (e.y_coo-a.y)**2)

force = (81*24*25)/ (distance(e.x_coo,e.y_coo, a.x,a.y)^2)
print(force)

错误:

TypeError: unsupported operand type(s) for ^: 'NoneType' and 'int'

3 个答案:

答案 0 :(得分:0)

您需要从函数distance返回一个值。 Python喜欢返回值,如果不声明函数返回的内容,Python会假定您要返回None

这是您应该拥有的:

def distance(x_coo,y_coo,x,y):
    dist = math.sqrt((e.x_coo-a.x)**2 + (e.y_coo-a.y)**2)
    return dist

答案 1 :(得分:0)

您错过了return上的distance(),即:

def distance(x_coo,y_coo,x,y):
    return math.sqrt((e.x_coo-a.x)**2 + (e.y_coo-a.y)**2)

答案 2 :(得分:0)

您忘记返回函数内的操作结果:

import math

x_coo = 20
y_coo = 30
x = 50
y = 80

def distance(x_coo,y_coo,x,y):
    dist = math.sqrt((e.x_coo-a.x)**2 + (e.y_coo-a.y)**2)
    return dist

force = (81*24*25)/ (distance(e.x_coo,e.y_coo, a.x,a.y)^2)
print(force)