我收到一本字典,要求使用函数和方程来计算落入某个阈值的项目的频率,而不使用 sum、len 或 count,也不需要导入 numpy 或其他程序。当我打印结果时,我不断遇到问题,但术语没有定义。我对功能的处理很差,所以我对此表示歉意。
字典给出为
observation = {'temperature': [85, 90, 15, 25, 90, 11, 20, 15, 25],
'dewpoint': [80, 85, 10, 20, 85, 8, 15, 15, 22],
'wind speed': [5, 10, 2, 0, 25, 30, 35, 4, 2],
'precipitation': [0, 0, 0, 2, 1, 0, 1, 0, 3]}
并要求对每个指标打印出“温度超过50 3次”等。 到目前为止我已经得到以下代码:
def temp_freq():
exceedances = 0
threshold = 50
for value in observation['temperature']:
if value > threshold:
exceedances += 1
return exceedances
print(f"temperature exceeded {threshold} {temp_freq(exceedances):.1f} times")
我不断收到关于在打印语句中定义术语的错误
错误: NameError:名称“阈值”未定义
您收到错误
Error: name 'threshold' is not defined
,因为阈值(以及超出范围)超出了您使用它们的范围。它们仅在函数执行期间存在于本地 temp_freq():
您可以将这两个常量从函数中取出或将它们作为参数发送给函数
def temp_freq(threshold, exceedances):
for value in observation['temperature']:
if value > threshold:
exceedances += 1
return exceedances
exceedances = 0
threshold = 50
print(f"temperature exceeded {threshold} {temp_freq(threshold, exceedances):.1f} times")