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

问题描述 投票:0回答:1

首先,我不是程序员,我可以一起破解代码,但是对此感到迷惑。我有一个声纳距离传感器,我想获取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"
python loops average distance sensor
1个回答
0
投票

听起来您可能要舍弃第一个读数,然后平均下一个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读数的功能中。然后可以像我的示例一样设置循环以获取多个读数。

© www.soinside.com 2019 - 2024. All rights reserved.