#在if语句嵌套中,需要特别注意的else和if的配对问题。python编译系统处理该问题的原则是:else 总是与同一语法层次中离他最近的尚未配对的if配对
#例如:
#4.3.2真值测试;
#python与cC++在处理真值和逻辑运算的方式上有所不同。在python中:
#任何非0数字和非空对象都未真。
#数字0、空对象(如空列表[],空字典{})、None都为假;
#比较和相当测试返回true(真)或false(假)。
#逻辑运算and和or,会返回参与运算的真或假的对象。
#回顾:逻辑运算:not x:x非真即假,非假即真;
#x and y:双真才为真;x or y:x 双假才为假;
#1.比较和相等测试,总是返回true或false。
print(2<5)
print(2>5)
print(2==5)
#2 not 运算,not运算返回true或false。例如:
print(not True,not False)
print(not 0,not 1,not 2)
print(not 'abc',not [1,2],not{'a':12}) #非空对象为真;
print(not '',not[],not{}) #空的对象为假
#3.and和or,python中的and和or运算符总是返回参与运算的对象,而不True和False。Python在计算and运算时,总是按从左到右的顺序计算。
#在找到第一个计算为假的对象,返回该对象,即使右侧还有需要计算的对象,计算都结束。这种计算方式称为短路计算。
print(2 and 0)
print([] and 2)
print(2 and {})
print([]and{})
print(2 and 5) #如果参与运算的对象都为真,则返回最后一个为真的对象。
print(5 and 2)
#or运算同样执行短路计算,在找到第一个为真的对象时,返回该对象,计算结束。
print(0 or 2)
print(2 or [])
print(False or 5)
print([]or{})
print({}or[])
print(False or 5)
#3.3 if...elif 三元表达式
x=5
y=100
if x>y:
a=x
else:
a=y
print(a)
#该if语句,将x、y中较大值赋值给a,该语句可简化为如下的if...els三元表达式。
#a=x if x>y else y
#python还支持从列表中挑选对象,其基本格式如下:
#f为假时,将x赋值给a,否则将y赋值给a。假前,真后
a=5
b=10
c=[a,b][a>b]
print(c)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。