我在测量电压。电压被收集到日志文件中。电压从5伏左右开始,攀升到200伏以上,然后回落到150伏以下。我的程序应该不会把电压读数放到日志文件中,直到电压超过150。然后,当电压超过150,在250左右达到峰值,然后又下降时,程序应该在电压降到150以下时执行sys.exit。问题是我的程序执行sys.exit的时间太早了,因为当电压低于150时,电压就会先攀升。我的程序如下所示。我希望通过缩进到最后一条线路来避免这个问题,认为这不会允许这条线路在电压已经攀升到150伏以上并下降到150伏以下后才能激活。有什么建议吗?
with open('logfile.txt', 'w') as f:
while True:
volts = adc.readADCDifferential01(1056, 8)
if volts > 150:
print >> f, time(), volts
if volts < 150:
sys.exit()发布于 2014-07-15 06:15:18
我想这会起作用的。
使用open('logfile.txt','w')作为f:
while volts>150:
print >> f, time(), volts
volts=voltfunction()
sys.exit()发布于 2014-07-15 06:23:39
相当差劲,但它的工作是:
>>> voltages = [50, 100, 150, 200, 250, 200, 150, 100, 50]
>>> threshold_passed = False
>>> for v in voltages:
... if v > 150:
... print v
... threshold_passed = True
... if threshold_passed and v < 150:
... print v
... break
...
170
200
250
200
170
100发布于 2014-07-15 06:24:16
你只需要使用一个状态变量来跟踪你是否已经达到了150伏。如下所示:
with open('logfile.txt', 'w') as f:
reachedPeak = False
while True:
volts = adc.readADCDifferential01(1056, 8)
if volts > 150:
reachedPeak = True
print >> f, time(), volts
if volts < 150 and reachedPeak:
sys.exit()https://stackoverflow.com/questions/24746858
复制相似问题