python之路-初识逻辑运算
# and or not
# and:两边真都是真, or: 或,一边真都是真。 not :非,not真就时假真
#同一优先级的从左至右依次计算
#优先级排序 () not >and>or ,有括号先算括号里的
print (2>1 and 1<4)
输出结果:True (真)
以下实列中红色字体代表先算和 (T)真,假(F)
实列:
print(2>1 and 1<4 or 2<3 and 9>6 or 2<4 and 3<2)
=T or T or F
# or:一真为真,同一级别,从左至右算
=T or F
所以输出结果是: True
2.
print (1>2 and 3<4 or 4>5 and 2>1 or 9<8) #最后一个or 无所谓了
=F or F
# or:一假为假
所以输出结果是:False
3.
print(1>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6)#and 两边为真才是真否则是假
= F or F
输出结果是:False
4.
print (not 2>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6)#not 非真则为假,and 有一个为假所以都是假
=F or F
输出结果是:False
运算.
ps: int--------->bool 非零转换成bool,为True ,0转换成bool 是False。
print (bool (2)) 输出结果:True
print (bool (-2)) 输出结果:True
print (bool (0)) 输出结果:False
#bool ------->int
print (int (True)) 输出结果:1
print (int (False))输出结果:0
# x or y x 为True ,则返回x , x or y x 为False ,则返回y
print (1 or 2) 输出结果:1
print (3 or 2) 输出结果:3
print (0 or 2) 输出结果:2
# x and y x 为True ,则返回y,x and y x 为False ,则返回x
print (1 and 2)输出结果:1
print (0 and 2)输出结果:0
实列题目:
print (2 or 100 or 3 or 4) # x or y x为True,则返回x
=(2 or 3 or 4)
=(2 or 4)
=2
print (0 or 4 and 3 or 2)# 有优先级,先算优先级and, x and y x为True,则返回y
=(0 or 3 or 2)# x or y x为False,则返回y
=(3 or 2)# x or y x为True,则返回x
=3
print (1>2 and 3 or 4 and 3 <2)# 1>2为False 3<2 为False
=(F and 3 or 4 and F) # and 一边为假都是假 。 x and y x 为False ,则返回x
=(F or F )
=False