2016-03-03 90 views
-3

当试图使用另一个函数类型错误:用于*不支持的操作数类型:“浮动”和“NoneType”

错误

TypeError: unsupported operand type(s) for *: 'float' and 'NoneType'

# Function to calculate 2D circularity ratio  
def defineCircularRatio(perim2D, area2D): 

    circularity_ratio = (4*math.pi*area2D)/(perim2D**2) 

    return circularity_ratio 

    print "The 2D circul_ratio is:", circularity_ratio 

周长和面积内功能 - 由其他功能计算。

+0

您已列出您的代码和错误。现在告诉我们你需要什么帮助。它说你的错误是因为你正在用float和None对象进行乘法运算,这当然不起作用。哪条线路错误?你能否重新格式化并完成最后一行。 – olofom

+0

'area2D'必须是'None' –

回答

0

它看起来像area2D不是一个整数既不是浮动。尝试检查您是否先前覆盖了它的值,或者计算area2D的函数是否真正计算出值。

0

只需使用基础示例代码与功能:

import math 

def defineCircularRatio(perim2D, area2D): 
    circularity_ratio = (4*math.pi*area2D)/(perim2D**2) 
    return circularity_ratio 

def main(): 
    area2D = input ("Enter the area: ") 
    perim2D = input ("Enter the perimeter: ") 
    result = defineCircularRatio(perim2D, area2D) 
    print "The 2D circul_ratio is:", result 

main() 

使用此示例代码,你的错误是所有关于你逝去的东西作为area2D和perim2D。您是否尝试过使用带有断点的IDE,以便您可以看到正在传递的内容?我自己使用eric。 你的功能结构似乎很好。我会专注于如何将perim2D和area2D传递给你的函数。

0

这是给出了错误行:

circularity_ratio = (4*math.pi*area2D)/(perim2D**2) 

现在,因为它有float错误NoneTypemath.pi之前的浮动本身,这意味着perim2D从来没有定义或等于什么都没有,因此NoneType。声明perim2D为某些东西,如整数或浮点数以防止出现错误。例如:

variable = 2 
other_variable = 3 

def defineCircularRatio(perim2D, area2D): 

    circularity_ratio = (4*math.pi*area2D)/(perim2D**2) 

    return circularity_ratio 

    print "The 2D circul_ratio is:", circularity_ratio 

defineCircularRatio(variable, other_variable) 

上面的代码分配variableperim2D,解决了问题,因为perim2D不再等于None而是2. other_variable用于被分配给area2D

相关问题