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