if语句上的python错误语法无效

时间:2016-01-07 01:16:10

标签: python python-2.7

我的代码需要一些帮助。我想检查变量start_time是否小于,等于或大于current_time来比较时间。

以下是代码:

start_date = str(stop_date[0])
stop_date = str(stop_date[1])
get_current_time = datetime.datetime.now().strftime('%H:%M')
get_start_time = time.strptime(start_date, '%Y%m%d%H%M%S')
start_time = time.strftime('%H:%M', get_start_time)
get_stop_time = time.strptime(stop_date, '%Y%m%d%H%M%S')
stop_time = time.strftime('%H:%M', get_stop_time)
current_time = str(get_current_time)

if start_time <> current_time <> stop_time:
   print "program is half way"

以下是start_time的输出:

19:00
19:00
19:00
19:00
19:00
19:00
19:00

以下是current_time的输出:

00:10:36 T:5304  NOTICE: 00:09

以下是stop_time的输出:

00:09:33 T:6824  NOTICE: 19:30
00:09:33 T:6824  NOTICE: 20:00
00:09:33 T:6824  NOTICE: 19:30
00:09:33 T:6824  NOTICE: 20:00
00:09:33 T:6824  NOTICE: 20:00
00:09:33 T:6824  NOTICE: 19:30
00:09:33 T:6824  NOTICE: 20:00

当我尝试这个时:

if start_time <=> current_time < stop_time:
   print "program has finished"

它会给我一个错误:invalid syntax

它不允许我在声明中使用=,我只能在小于或大于=的语句上写。

如何将=小于和大于start_time的{​​{1}}包括在内,以便将时间与current_time进行比较?

编辑:奥普斯,对不起我的错误。我粘贴了错误的代码,所以这就是我要做的事情:

if start_time <=> current_time < stop_time:
    print "program is half way"

1 个答案:

答案 0 :(得分:1)

根据我的理解,你想检查这两个是否成立:

  1. current_time小于,大于或等于start_time
  2. current_time小于stop_time
  3. 现在,第一个可以这样写:

    if current_time < start_time or current_time > start_time or current_time == start_time:
       print "program has finished"
    

    但是,这始终是正确的,因为start_timecurrent_time将相等(使current_time == start_time为真)或不同(使current_time < start_time or current_time > start_time为真)。

    第二个可以这样写:

    if current_time < stop_time:
       print "program has finished"
    

    所以,既然不需要第一个,你只需要:

    if current_time < stop_time:
       print "program has finished"