一、赋值运算
简单的赋值运算符号:=
c = a + b #将a+b的元算结果赋值给c
加法赋值运算符:+=
c += a #等效于 c = c + a
减法赋值运算符:-=
c -= a #等效于 c = c - a
乘法赋值运算符:*=
c *= a #等效于 c = c * a
除法赋值运算符:/=
c /= a #等效于 c = c / a
取模赋值运算符:%=
c %= a #等效于 c =c % a
幂赋值运算符:**=
c **= a #等效于 c = c ** a
取整除赋值运算符://=
c //= a #等效于 c = c // a
二、算术运算
加—两对象相加:+
a + b
减—两对象相减:-
a - b
乘—两对象相乘,或是返回一个被重复若干次的字符串:*
a * b
除—a除以b:/ #计算机表示小数的时候会有误差
a / b
取模—返回除法的余数:%
a % b
幂—返回a的b次幂:**
a ** b
取整除—返回商的整数部分://
a // b
三、比较运算,返回值为布尔值
等于:=
a == b #返回值为 True 或 False
不等于:!=或<>
a != b #返回值为 True 或 Falsea <>b #返回值为 True 或 False ,在python3.6中不支持,用 != 替代
大于:>
a > b #返回值为 True 或 False
小于:<
a < b #返回值为 True 或 False
大于等于:>=
a >= b #返回值为 True 或 False
小于等于:<=
a <= b #返回值为 True 或 False
四、逻辑运算
1. and:布尔”与” x and y
如果x为False,x and y 返回 False,否则它返回 y 的计算值
and是并且的意思,左右两端的值必须都是真,运算结果才是真,出现False即停止运算
print(True and True and False and False and True and False)
#返回值为False,只运算到第一个False就停止运算了
2. or:布尔”或” x or y
如果 x 为 True,它返回 True ,否则返回y的计算值
or是或者的意思,左右两端有一个是真的,结果就是真,只有全部都是假,结果才能是假
a or b #返回值为 True(a或b有一个为True) 或 False(a或b都为False)print( True or False) #返回值为True
3. not:布尔”非” not x
如果x为True,返回False;如果x为False,则返回True
not是非的意思,原来是假,现在是真;非真即假,非假即真
not(Ture and True) #返回值为Falseprint(not True) #返回值为Falseprint(not not not not not not False) #返回值为False,因为每两个not相互抵消了
“””
针对逻辑运算有进一步的研究:
1. 在没有 () 的情况下,not 优先级高于 and ,and 优先级高于 or ,同一优先级,从左往右计算
即优先级关系为 () > not > and > or
例题:判断下列逻辑语句的结果是True还是False
3>4 or 4<3 and 1 == 1
1<2 and 3<4 or 4>5 and 2<1
1>2 and 3<4 or 4>5 and 2>1 or 9<8
1>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6
not 2>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6
解法:
第一题:
a.先把每个比较算式运算出来,如第一个将变为:False or False and True
b.再按照 () > not > and > or 的优先级进行运算:此时第一题将先计算 False and True,结果为False
c.继续按照优先级进行计算:此时需要计算的算式变为了 False or False
故第一题的结果为False
第二题
a.先把每一个比较运算式计算出来:True and True or False and False
b.第一个 and 的算式为 True and True,计算结果为True
c.第一个 and 相连的运算符为 or,而 o r的两边只要出现 True,or 算式的结果即为 True
故第二题的答案为True
第三题
a.先把每一个比较运算式计算出来:False and True or False and True or False
b.第一个and的算式为False and True,结果为False:第二个 and 的算式为 False and True,结果为False
c.此时算式变为False or False or False
故第三题的答案为False
第四题
方法同上,注意True的断电机制
第五题
a.先把每一个计较算式运算出来:not True and True or False and True and True or False
b.存在not,先计算not,not True结果为False:False and True o rFalse and True and True or False
c.依此计算and:False or False or False
d.计算or
故第五题的结果为False
2.x or y,x为真,值就是x;x为假,值就是y
如果 x != 0,那么就是x;如果 x == 0,那么就是y;如果第一个数是0,则选择第二个数,如果第一个数不是0,则选择第一个数
x and y , x为真,值是y ;x为假,值是x
如果 x!=0 ,那么值就是y,如果 x == 0,那么就是x;即如果第一个数是零,则选择第一个数(选择0),如果第一个数不是零,则选择第二个数
or和and是相反的
例题:求出下列逻辑语句的值
8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6
解法:
第一题
a.第一个数不等于0,所以结果为第一个数,8
第二题
a.第一个数是0,所以结果是第一个数,0
第三题
a.先计算and,4and3 和 9and6:0 or 3 or 7 or 6
b.再计算or
0 or 3—>3
3 or 7—>3
3 or 6—>3
故结果为3
3. 2>5 and 3 #False相当于0
解法:
a.先计算比较算式,2>5—>False
b.False and 3 相当于 0 and 3 #False相当于0
c.故结果为False
2<1amd4>6or3and4>5or6
解法:
a.先计算比较算式:False and False or 3 and False or 6
b.再计算and:False and False —> False
3 and False —> 相当于 3 and 0 —> False
故 False or False or 6
c.再计算or:False or False —> False
False or 6 —> 相当于0 or 6 —> 6
故计算结果为6
注意混合型:
如:2>1 or 1
2<1 or 1