Я новичок в Python и я пишу простой скрипт для работы с Firebase но я укомплектованный на простой, если заявление, которое, кажется, не работает, как ожидалось:простой питон, если оператор не работает
## check for max values
if humidity > maxHumidity:
firebase.put("/Controls/Sensors", "/Humidity/max_inside", ""+humidity+"%")
print("Updating Humidity max_inside")
if temperature > maxTemperature:
firebase.put("/Controls/Sensors", "/Temperature/max_inside", ""+temperature+"C")
print("Updating Temperature max_inside")
## check for min values
if humidity < minHumidity:
firebase.put("/Controls/Sensors", "/Humidity/min_inside", ""+humidity+"%")
print("Updating Humidity min_inside")
if temperature < minTemperature:
firebase.put("/Controls/Sensors", "/Temperature/min_inside", ""+temperature+"C")
print("Updating Temperature min_inside")
Проблема в том, что первые два оператора if работают как ожидалось, последние два нет. Если влажность < minHumidity, ничего не происходит. Значение, которое я использую двойные как 70.50 ..
Редактировать
##retrive max & min humidity (remove the %)
maxHumidity = firebase.get("/Controls/Sensors/Humidity/max_inside", None)
maxHumidity = maxHumidity[:-1]
maxHumidity = float(maxHumidity)
minHumidity = firebase.get("/Controls/Sensors/Humidity/min_inside", None)
minHumidity = minHumidity[:-1]
minHumidity = float(minHumidity)
#retrieve max & min temperature (remove the C)
maxTemperature = firebase.get("/Controls/Sensors/Temperature/max_inside", None)
maxTemperature = maxTemperature[:-1]
maxTemperature = float(maxTemperature)
minTemperature = firebase.get("/Controls/Sensors/Temperature/min_inside", None)
minTemperature = minTemperature[:-1]
minTemperature = float(minTemperature)
#add current value
humidity, temperature = readDHT22()
firebase.put("/Controls/Sensors", "/Humidity/current_inside", ""+humidity+"%")
firebase.put("/Controls/Sensors", "/Temperature/current_inside", ""+temperature+"C")
##check for max values
if humidity > maxHumidity:
firebase.put("/Controls/Sensors", "/Humidity/max_inside", ""+humidity+"%")
print("Updating Humidity max_inside")
if temperature > maxTemperature:
firebase.put("/Controls/Sensors", "/Temperature/max_inside", ""+temperature+"C")
print("Updating Temperature max_inside")
## cehck for min values
if humidity < minHumidity:
firebase.put("/Controls/Sensors", "/Humidity/min_inside", ""+humidity+"%")
print("Updating Humidity min_inside")
if temperature < minTemperature:
firebase.put("/Controls/Sensors", "/Temperature/min_inside", ""+temperature+"C")
print("Updating Temperature min_inside")
Пытались использовать поплавок, но, кажется, до сих пор не работает! Не идет в мин, если.
где вы назначаете переменные? – patrick
Убедитесь, что как влажность, так и minHumidity имеют тип с плавающей точкой. Вы можете проверить его с типом (влажностью) и типом (minHumidity). – Jacobian
Похоже, что ваша 'влажность' и' температура' являются строками, а не плавают. –