在 Python 中创建一个循环并取平均读数

Creating a loop in Python and taking the average reading

首先,我不是程序员,我可以拼凑代码,但我在这个问题上遇到了困难。我有一个声纳距离传感器,我想获取 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 阅读的函数中。然后你可以像我的例子一样设置你的循环来获得多个读数。