builtins.TypeError:'< =' ' function'实例之间不支持和' int'

时间:2017-11-03 22:47:00

标签: python

我试图完成课堂作业,但我还没有得到最后一篇。

我试图拥有一个功能,当给定风速时,会给出相关的警告信息,但诀窍是风速和警告信息和参数在2个先前定义的功能中。此外,老师希望我们在一行中同时调用这两个功能。

首先我创建了前两个函数:

def storm_category(speed):
    if speed <= 129:
        return (0)
    if speed >= 130 and speed < 164:
        return (1)
    if 165 <= speed and speed < 189:
        return (2)
    if 190 <= speed and speed < 219:
        return (3)
    if 220 <= speed and speed < 259:
        return (4)
    if speed >= 260:
        return (5)

def category_warning(category):
    if category == 0:
        return "Not  a major threat"
    if category == 1:
        return "Very dangerous winds will produce some damage."
    if category == 2:
        return "Extremely dangerous winds will cause extensive damage."
    if category == 3:
        return "Devastating damage will occur."
    if category == 4:
        return "Catastropic damage will occur"
    if category == 5:
        return "Cataclysmic damage will occur."

但在最后一项功能中,我需要使用两者的信息:

def warning(speed):
    # Requirement: this function should be one line!

    return storm_category(category_warning)

但是,使用上面的代码,每次我尝试返回时,我都会收到错误消息,说明&#34; builtins.TypeError:&#39;&lt; =&#39; &#39; function&#39;实例之间不支持和&#39; int&#39;&#34;。它说错误在这些方面:

return storm_category(category_warning)

if speed <= 129:
        return (0)

我不确定我的语法是错还是什么。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

错误是因为您发送的是函数名而不是函数调用。必须是:

def warning(speed):
    return category_warning(storm_category(speed))
  

注意:在你的代码中python解释器处理操作时   speed <= 129,python解释器假设速度是可调用的   功能