仅创建10个数字的循环

时间:2019-06-15 20:16:39

标签: python

我正在尝试创建一个从温度传感器收集数字的循环

我创建了一个列表来收集和存储数据,并设置了时间来定期收集数据,但是我需要在获得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个数字后停止,这是它持续进行的时间。我知道我需要创建一个循环,但是我不断收到错误消息。

2 个答案:

答案 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:不会执行任何操作。