我正在尝试创建一个从温度传感器收集数字的循环
我创建了一个列表来收集和存储数据,并设置了时间来定期收集数据,但是我需要在获得10个数字后停止收集
# create the list
templist = []
while True:
try:
# get the temperature and Humidity from the DHT sensor
[ temp,hum ] = dht(dht_sensor_port,dht_sensor_type)
# change temp reading from celsius to fahrenheit
temp = ((temp/5.0)*9)+32
# round the temp to 2 decimal places so it will read on the LCD screen
new_temp = round(temp, 2)
print("temp =", temp )
# check if we have nans
# if so, then raise a type error exception
if isnan(new_temp) is True or isnan(hum) is True:
raise TypeError('nan error')
t = str(new_temp)
h = str(hum)
templist.append (new_temp)
sleep(1)
print ("the list is as follows" , templist )
我得到适当的输出,但是我希望它在10个数字后停止,这是它持续进行的时间。我知道我需要创建一个循环,但是我不断收到错误消息。
答案 0 :(得分:2)
for i in range(10):
...
或更惯用的:
for _ in range(10):
...
创建一个具有10次迭代的循环。
您还可以在while循环中使用break
关键字,但这也需要单独的变量来进行迭代计数。
答案 1 :(得分:1)
由于您将结果保留在templist
中,因此可以检查此列表中的项目数,并在达到10时停止:
templist = []
while len(templist) < 10:
...
此外,没有理由使用try:
块,除非您要使用except
来捕获错误。正如您的代码中所使用的,try:
不会执行任何操作。