一、运算符的概念
- 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。
二、运算符分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
1、算术运算符
- 加法运算符 表现形式 + ,如:a+b,返回a与b的和
- 减法运算符 表现形式 -,如:a-b,返回a与b的差
- 乘法运算符 表现形式 *,如:a * b,返回a与b的乘积,可以数字与数字相乘,也可以整数与字符串相乘,当整数与字符串相乘,相当于有整数条相同的字符串拼接。
- 除法运算符 表现形式 /,如:a/b,返回a与b的商,其中,b不为0
- // 整除,只会保留计算后的整数位,总会返回一个整型,商向下取整,如:-9//4=-3余3
- % 取模,求两个数相除的余数
- ** 幂运算,求一个值的几次幂,如:a**b,返回a的b次幂
2、比较运算符
• 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
- ”>“比较左侧值是否大于右侧值
- ”>= “比较左侧的值是否大于或等于右侧的值
- ”<“ 比较左侧值是否小于右侧值
- ”<=“ 比较左侧的值是否小于或等于右侧的值
- 特殊的比较方式
”==“ 比较两个对象的值是否相等
”!=“ 比较两个对象的值是否不相等
“is” 比较两个对象是否是同一个对象,比较的是对象的id
”is not“ 比较两个对象是否不是同一个对象,比较的是对象的id - 注意:int型变量与str类型不能直接比较,两个连续比较符出现如:a>b>c可视为a>b and b>c
另:两个str字符比较采用从左往右按位比较的方法,比较字符的ascll码值,一旦比较有结果就不会继续往右比较,如"abc"<“bac”,“2”>“13”,若前面比较无结果,继续向右比较,如"abd"<"ac"
3、赋值运算符
- += (x+= 3 相当于 x = x + 3 )
- -= (x -= 3 相当于 x= x - 3 )
- *= (x = 3 相当于 x = x 3 )
- **= (x **= 3 相当于 x = x ** 3 )
- /= (x /= 3 相当于 x = x/ 3 )
- //= (x //= 3 相当于 x = x // 3 )
- %= (x %= 3 相当于 x= x % 3 )
- c++中自加符如a++表示a=a+1,在python中,此语法不成立
4、逻辑运算符
- not 逻辑非
1、not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True - and 逻辑与
1、and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
2、与运算是找False的,如果第一个值为False,则不再看第二个值 - or 逻辑或
1、或运算两个值中只要有一个True,就会返回True
2、或运算是找True的 - 非布尔值的与或运算
当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
1、非布尔值与运算的规则
与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
2、 非布尔值或运算的规则
或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
5、三目运算符
- 格式形如:a =[表达式1] if [判定语句] else [表达式2]
- if判定语句为true时,执行表达式1语句,为false时,执行表达式2语句
6、其他
- in 成员运算符 判断一个变量的值是否为某列表的成员,返回true或false