• Arthur Besse@lemmy.ml
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      1 day 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
        3
        ·
        1 day 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.