&安培;运算符在程序中使用Python

时间:2017-06-15 06:02:42

标签: python

这个y & 3到底做了什么,这个if..if y & 3..else语句是如何工作的?请有人解释一下吗?取自https://www.hackerrank.com/challenges/day-of-the-programmer/leaderboard

y = int(input())
if y < 1918:
    ftext = "13.09.{}" if y & 3 else "12.09.{}"
elif y > 1918:
    ftext = "13.09.{}" if (y & 3) or (y % 400 and not y % 100) else "12.09.{}"
else:
    ftext = "26.09.{}"
print(y & 3)
print(ftext.format(y))

1 个答案:

答案 0 :(得分:0)

&运算符在操作数之间执行按位AND。 y&amp; 3用3位掩盖y的位。

因此,如果y = 11110111且3 = 00000011 y&3将评估为00000011

"13.09.{}" if y & 3 else "12.09.{}"检查y的最后2位是否都不为零的条件。如果y的最后2位为零,则条件将变为false。