在Python中显示已签名的浮点数

时间:2014-12-13 10:10:02

标签: python floating-point-conversion

直到本月,我的户外DHT22温度/湿度监测仪一直工作正常。然而,由于天气寒冷,气温现在低于零,我注意到我的日常工作未能处理负温度 - 相反,它们被表示为正面:标志已经丢失。

我已经调整了我的re.search例程以包含以前被排除在外的负数,

 # Continuously append data
 while(True):
 # Run the DHT program to get the humidity and temperature readings!
 # DHT22 (Credit to Adafruit)
 output = subprocess.check_output(["/home/pi/scripts/DHT/Adafruit_DHT", "22", "25"]);
 rasp = subprocess.check_output(["vcgencmd", "measure_temp"])
 print output
 matches = re.search("Temp =\s+-([0-9.]+)", output)
 if (not matches):
      time.sleep(3)
      continue
 tempa = float(matches.group(1))
 print tempa

当我

 print output

生成一个包含负温度的字符串。

然而,当我

print tempa

它显示为正数。

我需要能够将标志带入变量,因为温度可能是正面的也可能是负面的(即使在英国的冬天)。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

匹配组中未捕获到负号,因为目前它不属于此类。

"Temp =\s+(-[0-9.]+)"
          ^ fix

答案 1 :(得分:0)

我只是尝试过,而且只是" - "标志是不够的..如果你想测量正负温度,regexp字符串应如下所示:

"Temp =\s+([-+]?[0-9.]+)"