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:]文字列から最後の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.matchNone

于 2012-06-20T05:59:31.660 に答える