Python运算符
Python运算符主要包括算术、比较、赋值、逻辑、成员、身份运算符等等。
一、算术运算符:
1、加减乘除:+ - * /
2、取模:%,返回除法的余数
3、 幂:**,返回X的Y次幂
4、整除://,返回商的整数部分
a = 5
b = 2
print("a + b = " , a + b, end = '\n') #7
print("a - b = " , a - b, end = '\n') #3
print("a * b = " , a * b, end = '\n') #10
print("a / b = " , a / b, end = '\n') # 2.5
print("a除以b的余数=" , a % b, end = '\n') #1
print("a的b次幂=" , a ** b, end = '\n') #25
print("a除以b取整=" , a // b, end = '\n') #2
二、比较运算符
1、 ==:等于
2、 !=:不等于
3、 >:大于
4、 <:小于
5、 >=:大于等于
6、 <=:小于等于
a = 5
b = 2
print(a == b, end = ' ') # False
print(a >= b, end = ' ') # True
三、赋值运算符
1、 =:c = a + b,意思是将a + b的值赋值为c
2、+=:c += a等价于c = c + a
3、 -=:c -= a等价于c = c - a
4、 *=:c *= a等价于c = c * a
5、 /=:c /= a等价于c = c / a
6、 %=:c %= a等价于c = c % a
7、 **=:c **= a等价于c = c ** a
8、 //=:c //= a等价于c = c // a
a = 5
b = 2
a += b
print("a =", a) #7
a *= b
print("a =", a) #14
四、逻辑运算符
1、and:逻辑与运算,当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。
2、or:逻辑或运算,当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真。
3、not:逻辑非运算,如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反。
age = int(input("请输入年龄:"))
height = int(input("请输入身高:"))
if age>=18 and age<=30 and height >=170 and height <= 185 :
print("恭喜,你符合报考飞行员的条件")
else:
print("抱歉,你不符合报考飞行员的条件")
4、逻辑运算符可以用来操作任何类型的表达式,不管表达式是不是 bool 类型;同时,逻辑运算的结果也不一定是 bool 类型,它也可以是任意类型。
print(100 and 200) #200
print(45 and 0) #0
print("" or "http://c.biancheng.net/python/")
#http://c.biancheng.net/python/
print(18.5 or "http://c.biancheng.net/python/") #18.5
5、逻辑运算符的本质:在 Python 中,and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。另外,and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果。
*对于 and 运算符,两边的值都为真时最终结果才为真,但是只要其中有一个值为假,那么最终结果就是假,所以 Python 按照下面的规则执行 and 运算:
*如果左边表达式的值为假,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是假,此时 and 会把左边表达式的值作为最终结果。
*如果左边表达式的值为真,那么最终值是不能确定的,and 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
**对于 or 运算符,情况是类似的,两边的值都为假时最终结果才为假,只要其中有一个值为真,那么最终结果就是真,所以 Python 按照下面的规则执行 or 运算:
**如果左边表达式的值为真,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是真,此时 or 会把左边表达式的值作为最终结果。
**如果左边表达式的值为假,那么最终值是不能确定的,or 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
url = "http://c.biancheng.net/cplus/"
print("----False and xxx-----")
print( False and print(url) )
print("----True and xxx-----")
print( True and print(url) )
print("----False or xxx-----")
print( False or print(url) )
print("----True or xxx-----")
print( True or print(url) )
执行结果:
----False and xxx-----
False
----True and xxx-----
http://c.biancheng.net/cplus/
None
----False or xxx-----
http://c.biancheng.net/cplus/
None
----True or xxx-----
True
参考链接:http://c.biancheng.net/view/2186.html
五、成员运算符
1、in:如果在指定的序列中找到值返回 True,否则返回 False。
2、not in:如果在指定的序列中没有找到值返回 True,否则返回 False。
a = [1, 2, 3, 4 ,5]
print((1 in a), end='\n') #True
print((1 not in a), end='\n') #False
六、身份运算符
1、 is:判断两个标识符是不是引用自一个对象
2、 is not:判断两个标识符是不是引用自不同对象
a= 5
b=2
print((a is b), end=' ') #False
print((a is not b), end=' ') #True
七、运算符优先级
1、运算符优先级:
图1 Python运算符优先级2、运算符结合性:所谓结合性,就是当一个表达式中出现多个优先级相同的运算符时,先执行哪个运算符:先执行左边的叫左结合性,先执行右边的叫右结合性。
例如对于表达式对于100 / 25 * 16,/和*的优先级相同,/和*都具有左结合性,因此先执行左边的除法,再执行右边的乘法,最终结果是 64。
Python 中大部分运算符都具有左结合性,也就是从左到右执行;只有单目运算符(例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们具有右结合性,也就是从右向左执行。
3、综上,当一个表达式中出现多个运算符时,Python 会按照上图先比较各个运算符的优先级,按照优先级从高到低的顺序依次执行;当遇到优先级相同的运算符时,再根据结合性决定先执行哪个运算符:如果是左结合性就先执行左边的运算符,如果是右结合性就先执行右边的运算符。