Я новичок в Python и играл с ним и датчиками температуры на Raspberry Pi во время пандемии. Я пытаюсь сравнить три датчика DHT22 друг с другом и отобразить результат на ЖК-экране. У меня есть следующее, но я знаю, что это может быть более элегантно.
dht1 = dht.DHT22(board.D26)
dht2 = dht.DHT22(board.D19)
dht3 = dht.DHT22(board.D13)
#getting the values from the sensors left as floats for math
t1 = dht1.temperature
t2 = dht2.temperature
t3 = dht3.temperature
h1 = dht1.humidity
h2 = dht2.humidity
h3 = dht3.humidity
#convert to strings for display
t1s = str(t1)
t2s = str(t2)
t3s = str(t3)
h1s = str(h1)
h2s = str(h2)
h3s = str(h3)
#a little math
tavg = round(((t1 + t2 + t3)/3), 1)
tavgs = str(tavg)
havg = round(((h1 + h2 + h3)/3), 1)
havgs = str(havg)
Я хотел бы иметь возможность повторять их, чтобы мне не приходилось дублировать одни и те же операции снова и снова, но я не могу получить for i in range(1, 3)
или списки или что-то еще, чтобы работать для создания имен переменных или итераций, принимая измерения.
Любые идеи? Спасибо!
согласовано. Или вы также можете использовать словарь, например: sensors[dht1] = val
boards = [board.D26, board.D19, board.D13]; dhts = [dht.DHT22(b) for b in boards]; tavg = round(sum(t.temparatue for t in dhts) / len(dhts), 1)
… Надеюсь, вы уловили идею…
Вы можете сохранить переменные в списке:
sensors = [dht1, dht2, dht3]
, а затем перебирать этот список.