如何根据 Python 中的用户输入 运行 各种温度读数?

How to run various temperature readings based on user input in Python?

在 Python(对于 Raspberry Pi)编程方面,我是一个完全的业余爱好者,我想要实现的是询问用户他想要的样本数量和然后读取并打印出如此数量的样本,每个读数由一个简单的击键分隔。

我有一个简单的设置,包括一个 DHT11 温度和湿度传感器、一个 10 KΩ 电阻器、几根跨接电缆,当然还有一个面包板。按照以下代码进行测试时,电路工作正常:

import Adafruit_DHT
import time

DHT_SENSOR = Adafruit_DHT.DHT11
DHT_PIN = 4

while True:
    humidity, temperature = Adafruit_DHT.read(DHT_SENSOR, DHT_PIN)
    if humidity is not None and temperature is not None:
        print("Temperature={0:0.1f}C Humidity={1:0.1f}%".format(temperature, humidity))
    else:
        print("Sensor failed. Check wiring.");
    time.sleep(3)

这段代码的作用基本上是 reading/printing 每三秒输出一次温度和湿度, 无限期地

然而,正如我所说,我想要实现的是询问用户他想要的样本数量,然后读取并打印出这些样本数量,每个读数由一个简单的击键分隔。这是我一直在研究的代码:

import Adafruit_DHT

DHT_SENSOR = Adafruit_DHT.DHT11
DHT_PIN = 4

n = int (input("Number of samples?\n"))
print()


for x in range (n):
    input()
    while True:
        humidity, temperature = Adafruit_DHT.read(DHT_SENSOR, DHT_PIN)
    if humidity is not None and temperature is not None:
        print("Temperature={0:0.1f}C Humidity={1:0.1f}%".format(temperature, humidity))
    else:
        print("Sensor failed. Check wiring.")
    input()

所需操作的示例:

  1. "Number of samples?"
  2. 2
  3. 用户按下任意键
  4. "Temperature=23.0C Humidity=63.0%"
  5. 用户按下任意键
  6. "Temperature=24.0C Humidity=64.0%"

知道如何修复代码以使其达到我想要的效果吗?

您不再需要 while 循环

for 循环本身将重复请求的次数

for x in range (n):
    input()
    humidity, temperature = Adafruit_DHT.read(DHT_SENSOR, DHT_PIN)
    if humidity is not None and temperature is not None:
        print("Temperature={0:0.1f}C Humidity={1:0.1f}%".format(temperature, humidity))
    else:
        print("Sensor failed. Check wiring.")
    input()