逻辑运算符#

Note

这一节是基于 Jupyter Notebook来生成,你可以点击右上角的Live Code进入编程模式。

布尔运算#

乔治.布尔在提出布尔代数的同时,还规定了布尔代数的运算方式,也就是布尔运算(boolean operation)。布尔运算包含三种基本运算符:and,or,not。

and#

先来看and运算。这里P和Q都是布尔值。将P、Q的所有组合对应的结果表示出来,如下表所示:

P

Q

P and Q

True

True

True

True

False

False

False

True

False

False

False

False

and运算又称为逻辑与运算:当且仅当P和Q同时为真的时候,P and Q为真;否则P and Q为假。

上表叫做真值表(Truth Table),它列出了所有可能的运算组合。真值表和逻辑运算一一对应。

or#

同样,我们可以写出or的真值表:

P

Q

P or Q

True

True

True

True

False

True

False

True

True

False

False

False

or运算又称为逻辑或运算:P和Q至少有一个为真的时候,P or Q为真;否则P or Q为假。

not#

not的真值表:

P

not P

True

False

False

True

ex1#

a = 10
b = 10
c = -10

if a > 0 and b > 0:
    print("The numbers are greater than 0")

if a > 0 and b > 0 and c > 0:
    print("The numbers are greater than 0")
else:
    print("At least one number is not greater than 0")

#output: "The numbers are greater than 0"
# "At least one number is not greater than 0"
The numbers are greater than 0
At least one number is not greater than 0

ex2#

a = 10
b = -10
c = 0

if a > 0 or b > 0:
    print("Either of the number is greater than 0")
else:
    print("No number is greater than 0")

if b > 0 or c > 0:
    print("Either of the number is greater than 0")
else:
    print("No number is greater than 0")


  #output: "Either of the number is greater than 0"
  # "No number is greater than 0"
Either of the number is greater than 0
No number is greater than 0

ex3#

x = 50

if not (x>10):
    print("x is no greater than 10")

if not (20 <= x < 40):
    print("x is outside")
x is outside

ex4#

def leapYear(year):
    if(year<1582):
        return year%4==0
    else:
        return (year%400==0) or (year%100!=0 and year%4==0)