python之路-初识逻辑运算

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

x and y  x 为True ,则返回y

原文地址:https://www.cnblogs.com/jjsunxing/p/12608795.html