jlyjlysjd 2022-06-09 16:30 采纳率: 50%
浏览 21
已结题

python代码问题


import matplotlib.pyplot as plt
import numpy as np

plt.title("year-olders Function",fontsize=12)
plt.xlabel("year")
plt.ylabel("olders")

year=[2000,2001,2002,2003,2004,2005,2006,2007,2008,2009]
older=[88274022,90615170,93770690,96920250,98790880,100682120,103843920,107024490,110225660,113432500]
plt.scatter(year,older)
w=0.5
for i in range(10):
    x=year[i] #x=1
    y=older[i] #y=0.89
    data=w*x #y_pre=0.5*1=0.5
    e=y-data #e=0.39
    alpha=0.05
    w=w+alpha*e*x #w=0.5+0.05*0.39*1=0.5195
data=w*year
plt.plot(year,data)
plt.show()

这段代码是哪里出错了呢,”data=w*year“这一行一直在报TypeError: can't multiply sequence by non-int of type 'float'错误,请赐教。

  • 写回答

2条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-06-09 16:54
    关注

    你的data是想要表示什么内容呢?
    w是一个小数,year是一个列表,这两者不能相乘,只能通过列表推导式把列表的每个元素和w相乘,再生成一个列表:
    data=[wi for i in year]
    但我觉得逻辑上好像应该把列表放在循环里,把每个w
    year的值保存起来,所以先描述一下你的需求

    data2=[]
    for i in range(10):
        # 代码省略
        data2.append(w*year[i])
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月17日
  • 已采纳回答 6月9日
  • 修改了问题 6月9日
  • 创建了问题 6月9日

悬赏问题

  • ¥15 怎么生成确定数目的泊松点过程
  • ¥15 python点云生成mesh精度不够怎么办
  • ¥15 QT C++ 鼠标键盘通信
  • ¥15 改进Yolov8时添加的注意力模块在task.py里检测不到
  • ¥50 高维数据处理方法求指导
  • ¥100 数字取证课程 关于FAT文件系统的操作
  • ¥15 如何使用js实现打印时每页设置统一的标题
  • ¥15 安装TIA PortalV15.1报错
  • ¥15 能把水桶搬到饮水机的机械设计
  • ¥15 Android Studio中如何把H5逻辑放在Assets 文件夹中以实现将h5代码打包为apk