除了前文中已经学习过的赋值、算术、关系(比较)运算符外,本文就重点梳理复合赋值与逻辑运算符的常规应用。#少儿编程#
「知识胶囊」少儿Python编程系列之:内置运算函数及关系运算符
核心知识点:
1、复合赋值运算符
2、逻辑运算符
01复合赋值运算符
将算术运算符与赋值运算符结合在一起使用,构成的一种新的运算符。表示如下:
+=、-=、*=、/=、//=、%=、**=
这种写法的优势是使得代码更简洁明了。比如:
上述案例中,变量a的初始值为5,执行第3行代码复合赋值运算(a+=5),可分解为两个步骤:
第一步:先让左边的变量加上右边的数值(或表达式),即:a+5,因为a最初为5,所以结果为10;
第二步:将新的结果给左边的变量(a)再重新赋值,即:变量a最新的值更新为10。
如果不使用复合赋值(第3行代码),用a=a+5替换也完全没有问题,只是代码不够简洁而已,对运行结果没有影响。其他复合赋值运算类似,读者可以尝试局部修改,分析验证结果。
继续,问:执行下述代码后,最后变量a的值为多少?
代码从上往下运行,到第4行,根据前面的分析,变量a已经更新为10;
然后,执行复合的减法操作(第6行),相当于a=a-2(先减再赋值,参考上述思路),所以第7行变量a的值变更为8;
接着,再执行复合的乘法操作(第8行),相当于a=a*3(先乘再赋值),在最新变量a的基础上乘以3以后的结果:8X3=24。
所以,最后第9行输出:a=24,你的答案是否为我们预估的结果?
再看一个案例,代码如下,问:最后变量a、b、c的结果是多少?
解析:这段代码的关键是第6行代码(c*=a+b)如何理解?
当多个不同的运算符在同一个表达式出现的时候,就涉及到运算符的优先级问题了。就好比:3+2X8运算规则是先乘除、后加减一样。
该案例中,算术运算符(+)要优先于复合赋值运算符(*=)进行运算。所以,上述代码分解如下:
第一步:先计算a+b的结果;
第二步:再计算c*步骤1的结果;
第三步:最后给变量c重新赋值。
也就是代码等价于:c=c*(a+b)。最后的结果是:a=7b=7c=
你推导正确没?
02逻辑运算符
逻辑运算符,可以关联更多的表达式。其符号有:and(逻辑与)、or(逻辑或)、not(逻辑非)。参与运算的结果为布尔类型(True或False)。
逻辑与(and):多个关联的条件必须同时满足才可以。比如:学校评选三好学生,必须是出勤率在90%以上、各科成绩均值90分以上才具有评选资格。强调条件的同时性,表述文字中有并且、但是、同时等字样的就是逻辑与关系。
逻辑或(or):多个关联的条件只要有一项满足即可。比如:超市购物,或者银行卡、或者信用卡、或者