如何用python编写一个if语句来比较时间和值

2024-04-19 00:08:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python编写一个简单的代码,在一天中的特定时间打开led灯,然后在剩下的时间内关闭它。我试图在if语句中指明时间框架,但每次运行此代码时,if语句中只有“else”部分起作用。是否不允许我将HHMM的时间格式与0745的统一值进行比较?如果没有,我怎么能让led从午夜一直亮到早上7:45?任何帮助或指导将不胜感激!在

import time
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(3,GPIO.OUT)
print (time.strftime("%H%M"))

while True:
    if time.strftime("%H%M") <= 0745:
        GPIO.output(3,1)
    else:
        GPIO.output(3,0)

Tags: 代码import框架outputledgpioiftime
2条回答

尝试使用日期时间。在

import datetime
while True:
    time = datetime.datetime.now()
    morning = time.replace(hour=7, minute=45, second=0, microsecond=0)
    if time <= morning:
        print("turn on")
    else:
        print("turn off")

Python有一个datetime模块,它提供处理日期和时间的数据类型。在

你可以这样写问题的代码:

import datetime
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(3,GPIO.OUT)

while True:
    if datetime.datetime.now() <= datetime.datetime.combine(
      datetime.date.today(),
      datetime.time(7, 45)
    ):
        GPIO.output(3,1)
    else:
        GPIO.output(3,0)

然而,这仍然存在一个问题,即程序将在while循环中不断旋转,并尽可能多地占用CPU周期。在

你可以这样做:

^{pr2}$

相关问题 更多 >