【问题标题】:I'm trying to find the average, min and max of speed for every 100m of distance covered我试图找到每 100m 距离的平均速度、最小和最大速度
【发布时间】:2020-02-28 15:04:35
【问题描述】:

我编写了以下代码来输入距离、速度和时间,并返回每 100m 覆盖的平均、最小和最大速度。该代码运行一次,在第二次运行时,我得到了底部显示的错误。

sparray=[]
lasttime=0
newtime=0
lastdist=0
newdist=0
i=1
while 1:
    dist=float(input("distance"))
    speed = float(input("speed"))
    sparray.append(speed)
    print(sparray)
    time = float(input("time"))

    if (dist >= 100 * i):
        newtime = time
        newdist = dist
        kmtime = newtime - lasttime
        kmdist = newdist - lastdist
        avg = kmdist / kmtime
        print("AVG: ", avg)
        maxi = max(sparray)
        mini = min(sparray)
        print("MAX: ", maxi)
        print("MIN: ", mini)
        sparray = []
        i = i + 1
        lastdist = dist
        lasttime = time
        avg=0
        max=0
        min=0

错误:

Traceback(最近一次调用最后一次):文件 “C:/Users/Mahe.000/PycharmProjects/serialgraph/venv/test.py”,第 21 行, 在 maxi = max(sparray) TypeError: 'int' object is not callable

【问题讨论】:

  • 在循环结束时,您将用0 覆盖maxmin 函数。
  • 为什么每次都初始化 max=0 和 min=0,我认为不需要,如果你想要 sparray 中的最大值,只需调用 max(sparray)

标签: python


【解决方案1】:

您已在代码中声明/正在使用 max 和 min 变量。它们覆盖 max 和 min 函数。

这里

max=0
min=0

当您调用max() 时,python 会尝试将您的调用应用于 int 变量,然后您会收到您报告的错误。

解决方案:为maxmin 变量使用不同的名称。

我注意到您没有在代码中使用 maxmin 变量,除了将它们初始化为 0

在这种情况下只需删除这部分代码:

max=0
min=0

【讨论】:

  • 非常感谢您的帮助,即使这很愚蠢。欣赏它。
  • @dkr 很高兴我帮助了你:)
猜你喜欢
  • 1970-01-01
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 1970-01-01
  • 2019-12-11
相关资源
最近更新 更多