目录
一、运算符
运算符的概念
用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3, 其操作数是 2 和 3 ,而运算符则是 “ + ”
运算符的分类
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
条件运算符(三元运算符)
二、算术运算符
1.加法运算符,表现形式 “ + ”
1 a = 1 + 2
2 print(a)
3 输出:3
- 加法运算符可以字符串相加
1 a="ab"+"c"
2 print(a)
3 输出:abc
2.减运算符,表现形式 “ - ”
1 a = 3 - 2
2 print(a)
3 输出:1
- 减法运算符字符串不能相减
3.乘法运算符,表现形式 “ * ”
1 a = 1 * 2
2 print(a)
3 输出:2
- 乘法运算符可以字符串与整数相乘,但字符串不能跟字符串相乘
1 a = "abc" * 2
2 print(a)
3 输出:abcabc
4.除法运算符,表现形式 “ / ”
1 a = 6 / 2
2 print(a)
3 输出:3.0
- 除法运算符字符串不能相除,字符串也不能与整数等相除,0不能做除数
- 除法运算结果总会返回浮点类型(flaot)
5.整除运算符,表现形式 “ / / ”
1 a = 6 / / 2
2 print(a)
3 输出:3
- 整除运算结果总会返回整数类型(int)
6.取模(取余)运算符,表现形式 “ % ”
1 a = 5 % 2
2 print(a)
3 输出:1
7.幂运算符,表现形式 “ ** ”
1 a = 5 ** 2
2 print(a)
3 输出:25
三、赋值运算符
表现形式 “ = ” 把右侧的值赋值给左侧的变量
1 a = 50
2 print(a)
3 输出:50
赋值运算符的特殊写法
- += (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)
四、比较运算符
- 比较运算结果总会返回布尔类型
- 比较运算符比较的是,如果左侧的值大于右侧的值,则返回True,反之则返回False
1 a = 10 > 2
2 print(a)
输出:True
>运算符:比较左侧值是否大于右侧值;
<运算符:比较左侧值是否小于右侧值;
>=运算符:比较左侧值是否大于或等于右侧值;
<=运算符:比较左侧值是否小于或等于右侧值;
==运算符:比较两个对象的值是否相等;
!=运算符:比较两个对象的值是否不相等。
如果两个字符串相比较,首先比较两个字符串的首字符,如果相等就比较第二个,从左往右,以此类推。“ 字母比较大小规则是按照ASCII码表来设定的 ” 详情参考文章添加链接描述
例如:
1 a = "abc" > "c"
2 print(a)
3 输出:Flase
1 a = "abce" > "abcd"
2 print(a)
3 输出:True
1.is
比较两个对象是否是同一个对象,它比较的是对象的id
2.is not
比较两个对象是否不是同一个对象,它比较的是对象的id
五、逻辑运算符
逻辑运算符主要用于逻辑判断。
1.not逻辑非
not可以对符号右侧的值进行非运算。
1 a = not a
2 print(a)
3 输出:False
当判断值是0或1时会将0、1转化为布尔值在进行运算。若None等空串一般都作为0拿来运算
2.and 逻辑与
and对符号两边的值进行与运算
1 a = True and True
2 print(a)
3 输出:True
1 a = True and False
2 print(a)
3 输出:False
找False,有一个False返回False,有两个False返回True,若左边是True,则直接把右边的值作为返回值
1 True and print('Hello')
2 输出:Hello
1 False and print('Hello')
2 输出:False
3.or 逻辑或
or对符号两边的值进行或运算
1 a = False or True
2 print(a)
3 输出:True
1 a = True or False
2 print(a)
3 输出:True
找True,有True,优先输出True,若左边是False,则直接把右边的值作为返回值
1 True or print('Hello')
2 输出:True
1 False or print('Hello')
2 输出:Hello
4.非布尔值的与或运算
python会先将其当作布尔值运算
1.非布尔值的与运算
如果第一个值是False,则返回第一个值,
如果第一个值是True,则返回第二个值。
1 a = 1 and 5
2 print(a)
3 输出:5
1 a = 0 and 5
2 print(a)
3 输出:0
2.非布尔值的或运算
如果第一个值是True,则返回第一个值,
如果第一个值是False,则返回第二个值。
1 a = 1 and 5
2 print(a)
3 输出:1
1 a = 0 and 5
2 print(a)
3 输出:5
六、条件运算符(三元运算符)
表现形式 :“ 语句1 if 表达式 else 语句2 ”
1 print( " hello world" ) if True else print( " Hello" )
2 输出:hello world
3 print( " hello world" ) if True else print( " Hello" )
4 输出:Hello
1 a = 10
2 b = 20
3 ab = a if a > b else b
4 print(ab)
4 输出:20
现有一题:
有数值 a、b、c,求三个数值的最大值!
代码如下:
1 a = 10
2 b = 12
3 c = 18
4 x = a if (a > b and a > c) else (b if (b > a and b > c) else c)
5 print(x)
6 输出:18
七、运算符的优先级
由此图可经行推测:
① 假设 ‘ and ’ 和 ‘ or ’ 的优先级一样高
2 or 5,2是True,返回5
5 and 6,2是True,返回 6
② 假设 ‘ or’ 比 ‘ and ’ 的优先级高
2 or 5,2是True,返回5
5 and 6,2是True,返回 6
③ 假设 ‘ and ’ 比 ‘ or ’ 的优先级高
5 and 6,5是True,返回6
2 or 6,2是True,返回 2
结果得到: ‘ and ’ 比 ‘ or ’ 的优先级高
详细可参考文章 Python运算符优先级一览表
也可查看Python官方网站 6.17. Operator precedence