• Arthur Besse@lemmy.ml
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    20 hours ago

    Idk it works for me.

    I don’t think there is any possible value for the sign variable which would make that if statement do anything other than raise a TypeError.

    Also "8:00:00" > "10:00:00"

    but "08:00:00" < "10:00:00". comparing timestamps as strings is weird but actually works, as long as the hour is zero-padded :)

    the problem with this code is that & (bitwise AND) has higher operator precedence than > and == do, so it is first trying to bitwise AND "10:00:00" with sign (which i’m assuming would also be a string) and that will always raise a TypeError.

    to do what the author appears to have intended to do, they would either need use parenthesis around both comparisons to actually bitwise AND their results, or (better) to use the boolean AND operator (and) instead of &.

    The boolean and operator is the right tool for the job, and since it is lower precedence it also wouldn’t require that any parenthesis be added here.

    • lengau@midwest.social
      link
      fedilink
      arrow-up
      2
      ·
      20 hours ago

      Heh you’re right, I didn’t catch the bitwise and, so I thought you were making a TypeError joke about comparing strings. Fixing the and though (which I did naturally when I typed it into my interpreter to double-check), we get the issue that they are just using a string for the time rather than a time object. “Too early” is also a valid entry that gets us an available office.