0

我在这样的函数中有一系列 if 语句:

if time == "%%00":
    #code
elif time == "%%15":
    #code
elif time == "%%30":
    #code
elif time == "%%45":
    #code

时间是 24 小时格式,即。0000-2400,我正在检查 15 间隔时间是多少。但是,所有语句都被忽略,因此“%%interval”不起作用。只是我在这里遗漏了一些简单的东西,还是我需要一种不同的方法?

4

2 回答 2

7

有几种方法可以做到:

if time.endswith("00"):
    #code
elif time[-2:] == "15":
    #code
elif re.match(".{2}30", time):
    #code
elif time.endswith("45"):
    #code
于 2012-06-20T05:46:36.577 回答
0

从根本上讲,您是在比较字符串文字,仅此而已,有几种方法可以做到这一点,这是一种没有正则表达式的方法。

if   time[-2:] == "00":
    #code
elif time[-2:] == "15":
    #code
elif time[-2:] == "30":
    #code
elif time[-2:] == "45":
    #code

[-2:]将从字符串中获取最后两个字符

这是一个带有正则表达式的,我不是它们的忠实粉丝,它们会产生微妙的错误,但这只是我的看法。

if re.match('..00', time):
    #code
elif re.match('..15', time):
    # code
elif re.match('..30', time):
    # code
elif re.match('..45', time):
    # code

简单的.意思是匹配任何字符,除了\nre.match返回一个对象或者None如果没有匹配。

于 2012-06-20T05:59:31.660 回答