【问题标题】:determine the amount of ambient light levels确定环境光量
【发布时间】:2015-05-20 22:11:43
【问题描述】:

对于这个程序,我正在使用 python。

我应该将机器人移动到一个随机位置并将其旋转 360 度。我必须将所有三个光传感器的 15 个读数分配给三个不同的列表。

然后我必须计算来自每个传感器的光值的平均值,然后确定每个传感器的最大值和最小值。

然后我必须计算并显示所有三个传感器的平均光值,并让它宣布周围的平均光值以及它是否太亮或太暗。

我相信我已经完成了这一切,但我的程序无法运行。例如,我的机器人在随机位置移动,然后旋转 360 度,但随后程序停止了,我不知道为什么。

出现一个错误提示:

max() arg is an empty sequence 

如果有人可以帮助我找出我做错了什么,那就太好了! 非常感谢!!!

这是我的程序:

from myro import *
init("simulator")

def pressC():
    entry = " "
    while(entry != "c"):
        entry = raw_input("Press c to continue: ")

def movement():
    rightSensor = []
    centerSensor = []
    leftSensor = []
    return rightSensor
    return centerSensor
    return leftSensor

    for index in range(1,15):
        rightSensor.append(getLight("right"))
        centerSensor.append(getLight("center"))
        leftSensor.append(getLight("left"))

def average():
    rightSensor = []
    centerSensor = []
    leftSensor = []
    sumRight = 0
    sumCenter = 0
    sumLeft = 0

    for index in range(len(rightSensor)):
        sumRight = sumRight + rightSensor[index]
        averageRight = sumRight / 15

    for index in range(len(centerSensor)):
        sumCenter = sumCenter + centerSensor[index]
        averageCenter = sumCenter / 15
        while averageCenter > 100:
            speak("Its too dark. I need light")
        else:
            speak("Its so bright")

    for index in range(len(leftSensor)):
        sumLeft = sumLeft + leftSensor[index]
        averageLeft = sumLeft / 15

    max(rightSensor)
    min(rightSensor)
    max(centerSensor)
    min(centerSensor)
    max(leftSensor)
    min(leftSensor)

    print "Left Avg: " + str(averageLeft), "Max: " + str(leftSensor), "Min: " + str(leftSensor)
    print "Center Avg: " + str(averageCenter), "Max: " + str(centerSensor), "Min: " + str(centerSensor)
    print "Right Avg: " + str(averageRight), "Max: " + str(rightSensor), "Min: " + str(rightSensor)


def main():
    pressC()
    forward(1,1)
    rotate(1)
    wait(7)
    stop()
    movement()
    average()

main()

【问题讨论】:

  • 您甚至对错误发生在哪一行保密?伙计,你真的不需要帮助......
  • 我很抱歉,但这是完整的错误所说的:
  • Traceback(最近一次调用最后):文件“C:\Users\\Desktop\”,第 67 行,在 -toplevel-main() 文件“C:\Users\”,第 65 行,在 main average() File "C:\Users\",第 46 行,平均 max(rightSensor) ValueError: max() arg is an empty sequence
  • 连续三个返回语句return rightSensorreturn centerSensorreturn leftSensor是什么意思?只有第一个会被执行。
  • 我认为我必须返回它们才能将它们用作值。它们不是必需的吗?

标签: python for-loop sensors light ambient


【解决方案1】:

这是您代码的相关部分:

def average():
    rightSensor = []
    (do stuff that does not change rightSensor)
    max(rightSensor)

难怪它是空的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2022-11-03
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多