You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python looping函数实现报错求助:返回pyplot对象及绘图问题

问题解决:AttributeError: 'list' object has no attribute 'savefig'

错误原因

你的looping函数返回了plt.plot(x, np.array(y), 'r.')的结果,而plt.plot()实际返回的是包含Line2D对象的列表,并非题目要求的pyplot(即plt)对象。测试代码中的save_plt函数需要调用plt.savefig(),但传入的是列表,自然触发属性不存在的错误。

修正后的代码

import numpy as np
import matplotlib.pyplot as plt

def looping(my_func, interval, limit):   
    x = np.arange(0, limit, interval)   
    # 用列表推导式简化y值生成,原循环append写法也可保留
    y = [my_func(i) for i in x]   
    # 绘制红色点标记的图表
    plt.plot(x, y, 'r.') 
    # 返回pyplot对象(plt),而非plot方法的返回值
    return plt 

关键改动说明

  • 移除了返回plt.plot()结果的逻辑,改为完成绘图后直接返回plt对象,完全符合题目要求的返回值类型。
  • 用列表推导式简化了y值的生成过程,代码更简洁(原循环写法也能正常工作,可根据习惯选择)。

内容的提问来源于stack exchange,提问作者johnborris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:43:02