TypeError:*不支持的操作数类型*:'float'和'NoneType'

时间:2016-03-03 22:27:26

标签: python

当我尝试在另一个函数中使用函数时

错误

  

TypeError:*不支持的操作数类型*:'float'和'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

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

3 个答案:

答案 0 :(得分:1)

这是给出错误的行:

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

现在因为错误中float之前NoneType而且math.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)

以上代码将variable指定为perim2D,解决了问题,因为perim2D不再等于None,而是使用other_variablearea2D被分配到component A render(){ <View> {this.renderB()} {this.renderC()} </View> } component B super(props){ this.state={text: (this.props.text) ? this.props.text : '' } } render(){ } component C super(props){ } render(){ <View> <TouchableHighlight onPress={ ...here I want to modify text state of component B }></TouchableHighlight> </View> }

答案 1 :(得分:0)

看起来area2D不是一个整数也不是浮点数。尝试检查您是否优先覆盖其值,或者计算area2D的函数是否真正正确计算了该值。

答案 2 :(得分:0)

将基本示例代码与您的函数一起使用:

Enumeration

使用此示例代码,您的错误是关于您作为area2D和perim2D传递的内容。您是否尝试过使用带断点的IDE,以便查看传递的内容?我自己用eric。 你的功能结构似乎很好。我将重点介绍如何将perim2D和area2D传递给您的函数。