今天来说一说Python的运算符吧!
Python支持一下类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
下面咱们来一个一个的学习一下:
- 算数运算符
- " + " 加号运算符,代表两个对象相加,例子:
- 数字相加 a = 10, b = 10, 那么a + b 输出 20
- 字符串相加 a = "abc", b = "def", 那么a + b 输出 "abcdef"
- " - " 减号运算符,代表两个数相减,或者得到一个负数,例子:
- 两数相减 a = 10, b = 5, 那么a - b 输出 5
- 得到一个负数 a = -10
- " * " 乘号运算符,代表两个数相乘,或者返回一个被重复若干次的字符串,例子:
- 数字相乘 a = 10, b = 10, 那么a * b 输出 100
- 重复字符串 a = "abc", 那么a * 3 输出 "abcabcabc"
- " / " 除号运算符,代表两个数相除,但是Python2.x和Python3.x的结果不同,例子:
- python2.x中数字相除 a = 5, b = 2, 那么 a / b 输出 2
- python3.x中数字相除 a = 5, b = 2, 那么 a / b 输出 2.5
- " % " 取模运算符,代表返回除法的余数,例子:
- a = 10, b = 3, 那么 a % b 输出 1
- " ** " 幂运算符,代表幂运算,例子:
- a = 10, b = 2, 那么a ** b,即10 的2次幂,输出 100
- " // " 取整除运算符,代表返回除法的商的整数部分,例子:
- a = 5, b = 2, 那么 a // b 输出 2
- " + " 加号运算符,代表两个对象相加,例子:
- 比较运算符
- " == " 等号运算符,代表比较对象是否相等,例子:
- a = 10, b = 10, 那么 a == b 输出 True
- " != " 不等号运算符,代表比较对象是否不相等,例子:
- a = 10, b = 10, 那么 a != b 输出 False
- a = 10, b = 10, 那么 a != b 输出 False
- " <> " 不等号运算符,用法类似于" != "
- " > " 大于号运算符,代表比较大小,例子:
- a = 10, b = 5, 那么a > b 输出 True
- " < " 小于号运算符,代表比较大小,例子:
- a = 10, b = 5, 那么a < b 输出 False
- a = 10, b = 5, 那么a < b 输出 False
- " >= " 大于等于运算符,代表比较大小,例子:略
- " <= " 小于等于运算符,代表比较大小,例子:略
- " == " 等号运算符,代表比较对象是否相等,例子:
- 赋值运算符
- " = " 简单赋值运算符,即,a = b, 那么就是把b的值赋值给a
- " += " 加法赋值运算符,即,a += b, 那么就是把a + b 的值赋值给a,等同于a = a + b
- " -= " 减法赋值运算符,即,a -= b, 等同于 a = a - b
- " *= " 乘法赋值运算符,即,a *= b, 等同于 a = a * b
- " /= " 除法赋值运算符,即,a /= b, 等同于 a = a / b
- " %= " 取模赋值运算符,即,a %= b, 等同于 a = a % b
- " **= " 幂赋值运算符,即,a **= b, 等同于 a = a ** b
- " //= " 取整除赋值运算符,即,a //= b, 等同于 a = a // b
- 位运算符
- " & " 按位与运算符,即参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
- " | " 按位或运算符,即只要对应的二个二进位有一个为1时,结果位就为1
- " ^ " 按位异或运算符,即当两对应的二进位相异时,结果为1
- " ~ " 按位取反运算符,即对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1
- " << " 左移动运算符,即运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0
- " >> " 右移动运算符,即把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
- 逻辑运算符
- " and " 布尔"与" ,即如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
- " or " 布尔"或",即如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。
- " not " 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
- 成员运算符
- " in " 如果在指定的序列中找到值返回 True,否则返回 False。
- "not in " 如果在指定的序列中没有找到值返回 True,否则返回 False。
- 身份运算符
- " is " is 是判断两个标识符是不是引用自一个对象,x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
- " is not " is not 是判断两个标识符是不是引用自不同对象,x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
- 运算符优先级(从最高到最低优先级排列)
** |
~ |
*, /, %, // |
+, - |
>>, << |
& |
^, | |
<=, >=, >, < |
<>, ==, != |
=, %=, /=, //=, +=, -=, *=, **= |
is, is not |
in, not in |
not, and, or |