Python 检查值时如何通过if语句

Python 检查值时如何通过if语句,python,python-2.7,Python,Python 2.7,我在比较if语句上的变量时遇到问题 我想将变量start\u time与当前时间进行比较,看看它是否与当前时间相等,我想将变量start\u time和stop\u time与当前时间进行比较,看看当前节目是否已完成一半,或者当前节目是否已结束 示例:当前时间显示为01:20,我检查变量start\u date,它显示为01:15。我想检查它是否与当前时间相等,并打印程序已启动。当我的当前时间显示为01:35时,我想检查变量start\u date,该变量显示为01:20,我想检查变量stop\

我在比较if语句上的变量时遇到问题

我想将变量
start\u time
与当前时间进行比较,看看它是否与当前时间相等,我想将变量
start\u time
stop\u time
与当前时间进行比较,看看当前节目是否已完成一半,或者当前节目是否已结束

示例:当前时间显示为
01:20
,我检查变量
start\u date
,它显示为
01:15
。我想检查它是否与当前时间相等,并打印
程序已启动
。当我的当前时间显示为
01:35
时,我想检查变量
start\u date
,该变量显示为
01:20
,我想检查变量
stop\u date
,该变量显示为
02:15
,因此我想打印
程序已完成一半。如果当前时间大于
02:15
,则我想打印
程序已结束

以下是我正在使用的:

if current_time == start_time:
    print "program started"

elif current_time <= stop_time:
    print "program finished"


elif current_time > start_time and stop_time < start_time:
    print "program half way"
以下是
停止日期
数据:

14:18:45 T:4976  NOTICE: 01:15
14:18:45 T:4976  NOTICE: 01:20
14:18:45 T:4976  NOTICE: 00:40
14:18:45 T:4976  NOTICE: 00:10
14:18:46 T:4976  NOTICE: 23:55
14:18:46 T:4976  NOTICE: 01:10
14:18:46 T:4976  NOTICE: 01:50
14:21:12 T:4712  NOTICE: 02:15
14:21:12 T:4712  NOTICE: 03:20
14:21:12 T:4712  NOTICE: 02:30
14:21:12 T:4712  NOTICE: 02:10
14:21:12 T:4712  NOTICE: 01:55
14:21:12 T:4712  NOTICE: 02:05
14:21:12 T:4712  NOTICE: 02:40
以下是当前时间: 2016-01-01 14:13:30.707000

当我尝试使用此行进行比较时,
elif current\u time>start\u time和stop\u time
,它不允许我检查当前时间、
start\u date
stop\u date


您能给我举个例子,说明如何将变量
start\u date
stop\u date
与当前时间进行比较,以查看程序是否已启动,是否已完成一半,以及当前程序是否已结束?

您不需要将datetime对象转换为字符串,您可以直接比较它们,如本例所示:

from datetime import datetime

start_date = "2016-01-01 14:18:45"
stop_date = "2016-01-01 18:21:12"

current_datetime = datetime.now().replace(microsecond=0)
start_datetime = datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S')
stop_datetime = datetime.strptime(stop_date, '%Y-%m-%d %H:%M:%S')


if current_datetime == start_datetime:
    print "program started"
elif start_datetime < current_datetime < stop_datetime:
    print "program half way"
else:
    print "program finished"
从日期时间导入日期时间
开始日期=“2016-01-01 14:18:45”
停止日期=“2016-01-01 18:21:12”
当前_datetime=datetime.now().replace(微秒=0)
start_datetime=datetime.strtime(开始日期,%Y-%m-%d%H:%m:%S)
stop_datetime=datetime.strtime(stop_date,“%Y-%m-%d%H:%m:%S”)
如果当前日期时间==开始日期时间:
打印“程序已启动”
如果开始日期时间<当前日期时间<停止日期时间:
打印“程序一半”
其他:
打印“程序完成”

我可以看到当前时间是一个字符串,而开始日期和停止日期是时间对象,为什么?谢谢你,你说的值到底是什么意思?你是说什么类型的?是的,类型好像错了。您不需要将
time.strtime()
datetime.datetime.now()
返回的值转换为strngs,您可以直接比较。好的,您知道在检查变量和当前时间时,如何直接比较它们,以查看程序是否已启动、进行了一半还是已结束?
from datetime import datetime

start_date = "2016-01-01 14:18:45"
stop_date = "2016-01-01 18:21:12"

current_datetime = datetime.now().replace(microsecond=0)
start_datetime = datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S')
stop_datetime = datetime.strptime(stop_date, '%Y-%m-%d %H:%M:%S')


if current_datetime == start_datetime:
    print "program started"
elif start_datetime < current_datetime < stop_datetime:
    print "program half way"
else:
    print "program finished"