首先,我不是程序员,我可以一起破解代码,但是对此感到迷惑。我有一个声纳距离传感器,我想获取10个读数以找到这些读数的平均值。我发现第一读通常会很遥远,因此得出10将会是一个很好的数字。找到了一些有关基本循环的教程,但无法弄清楚如何将其应用于我的情况。这是我要循环的代码和当前输出。有什么建议吗?
GPIO.output(PIN_TRIGGER, GPIO.HIGH)
time.sleep(0.00001)
GPIO.output(PIN_TRIGGER, GPIO.LOW)
while GPIO.input(PIN_ECHO)==0:
pulse_start_time = time.time()
while GPIO.input(PIN_ECHO)==1:
pulse_end_time = time.time()
pulse_duration = pulse_end_time - pulse_start_time
distance = round(pulse_duration * 17150, 2)
print "Distance:",distance,"cm"
听起来您可能要舍弃第一个读数,然后平均下一个10。平均10个读数的最简单方法是像这样的循环:
accumulator = 0
for _ in range(10):
reading = take_reading()
accumulator += reading
average = accumulator / 10
说明:
[accumulator = 0
这将初始化一个变量来存储您的读数总和。
for _ in range(10):
我们想循环10次。我们不需要对循环计数器做任何事情,因此我们可以使用下划线_
而不是定义一个变量来捕获它。
reading = take_reading()
获取我们需要的数据。
accumulator += reading
将当前数据添加到累加器。
average = accumulator / 10
,此行不缩进会结束for
循环。取我们10个读数的平均值。
理想情况下,您希望将阅读过程置入return
读数的功能中。然后可以像我的示例一样设置循环以获取多个读数。