Не работает проверка IF/ELSE
Всем добрый день,осваиваю питон,пользуюсь OrangePI + Armbian(Ubuntu Baster) Имеется такой код для определения температуры CPU и вывода на 1602
def main():
while True:
set_temp = get_cpu_temp()
nowtime = datetime.now().strftime('%H:%M')
update_LCD(nowtime,set_temp)
sleep(1)
def update_LCD(time,get_temp):
mylcd.lcd_display_string(chr(2)+time, 1)
if get_temp < 49:
print('low')
mylcd.lcd_display_string(chr(0)+get_temp, 2)
elif temp > 49:
print('high')
mylcd.lcd_display_string(chr(1)+get_temp, 2)
Почему-то независимо от температуры,выводится high, что я делаю не так?Подскажите пожалуйста. При этом саму температуру на дисплей выводит нормально. Функция вывода температуры:
def get_cpu_temp():
tmp = open('/sys/class/thermal/thermal_zone0/temp')
cpu = tmp.read()
tmp.close()
return '{:.0f}'.format(float(cpu) / 1000)
P.S такой вариант тоже не работает
def update_LCD(temp, time,get_temp):
mylcd.lcd_display_string(chr(2)+time, 1)
if temp < 50:
print('low '+temp)
mylcd.lcd_display_string(chr(0)+get_temp, 2)
else:
print('high '+temp)
mylcd.lcd_display_string(chr(1)+get_temp, 2)
Ответы (2 шт):
Автор решения: Эникейщик
→ Ссылка
Потому что из get_cpu_temp() приходит строка, а сравниваете вы с числом.
Автор решения: Urban Side
→ Ссылка
Сработал такой вариант получения температуры по совету Эникейщик
tFile = open('/sys/class/thermal/thermal_zone0/temp')
temp = float(tFile.read())
tempC = temp/1000
tFile.close()
return tempC