我试图完成课堂作业,但我还没有得到最后一篇。
我试图拥有一个功能,当给定风速时,会给出相关的警告信息,但诀窍是风速和警告信息和参数在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)
我不确定我的语法是错还是什么。任何人都可以帮助我吗?
答案 0 :(得分:1)
错误是因为您发送的是函数名而不是函数调用。必须是:
def warning(speed):
return category_warning(storm_category(speed))
注意:在你的代码中python解释器处理操作时
speed <= 129
,python解释器假设速度是可调用的 功能