第五章 运算符【Python基础】
程序员文章站
2022-07-04 18:51:22
...
运算符(操作符)可以对一个值或者多个值进行运算或者各种操作,比如+、-、=,都属于运算符
运算符的分类:
- 算术运算符
- 赋值运算符
- 比较运算符(关系用算符)
- 逻辑运算符
- 条件运算符(三元运算符)
一、算术运算符
- “ + ”加法运算符,如果两个字符串之间进行加法运算,则会进行拼串操。
>>> a = 10+5
>>> print(a)
15
>>> a = 'hello'+'world'
>>> print()
>>> print(a)
helloworld
>>> a = 6-True
>>> print(a)
5
>>>
- “ - ”减法运算,字符串相减会报错。
>>> a = 'hello'-'h'
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
a = 'hello'-'h'
TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>>
- “ * ”乘法运算,如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数的复制
>>> a = 'hello,'
>>> a=a*5
>>> print(a)
hello,hello,hello,hello,hello,
>>>
- “ / ”除法运算,运算结果总会返回一个浮点型,“ // ”表示整除,只保留计算后整数部分,总会返回一个整型。
>>> a = 10/5
>>> print(a)
2.0
>>> a = 5/2
>>> print(a)
2.5
>>> a = 5/0
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
a = 5/0
ZeroDivisionError: division by zero
>>> a = 10/3
>>> print(a)
3.3333333333333335
>>> a = 10//3
>>> print(a)
3
>>>
- “ ** ”幂运算,求一个值的几次幂。
>>> a = 2 ** 2
>>> print(a)
4
>>> a = 10 ** 5
>>> print(a)
100000
>>> a = 16 ** 0.5
>>> print(a)
4.0
>>>
- “ % ”取模运算
>>> a = 10 % 5
>>> print(a)
0
>>> a =10%2
>>> print(a)
0
>>> a = 10 %4
>>> print(a)
2
>>> a = 10 % 3
>>> print(a)
1
>>>
二、赋值运算符
可以将等号右侧的值赋值给等号左侧的变量。
- “ = ”
- “ += ” a +=5 相当于 a = a + 5
- “ - = ” a -=5 相当于 a = a - 5
- “ * =” a *=5 相当于 a = a * 5
- “ **= ” a **=5 相当于 a = a ** 5
- “ /= ” a /=5 相当于 a = a / 5
- “ // =” a //=5 相当于 a = a / 5
- “ %= ” a %=5 相当于 a = a % 5
三、关系运算符
关系运算符用来比较两个值之间的关系,总返回一个布尔值。
如果关系成立,则返回一个True,否则返回一个False
关系运算符:
-
比较左侧值是否大于右侧值
-
= 比较左侧值是否大于等于右侧值
- <
- <= 比较右侧值是否大于左侧值
- == 比较左右值是否相等
- != 比较左右值是否不相等
在Python中可以对两个字符串进行大于(等于)或小于比较的运算。
(1)当对字符串进行比较时,实际上比较的是字符串的Unicode编码
(2)利用该特点可以对字符串按照字母顺序进行排序,但对于中文来说没有多大意义
(3)比较两个字符串的Unicode编码时是逐位比较的
四、逻辑运算
逻辑运算符主要用来做一些逻辑判断
1、not 逻辑非
- not可以对符号右侧的值进行非运算
- 对于布尔值,非运算会对其他进行取反操作,True变False,False变Ture
- 对于非布尔值,非运算会先将其转换为布尔值,然后取反
2、and 逻辑与
- and可以对符号两侧的值进行与运算
- 只有在符号两侧的值都为True时,参会返回True,只要有一个False就会返回False
- 与运算是找False的
- Python中的与运算是短路的与,如果第一个值是False,则不再看第二个值
3、or 逻辑或
- 或运算,两个值有一个为True,结果就是True。
- 或运算就是找True
- Python中的或运算是短路或,如果第一个值为True,则再不看第二个值。
五、非布尔值的逻辑运算符
当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终返回原值。
与运算的规则:
- 与运算是找False的,如果第一个值是False,则不看第二个值
- 如果第一个值是False,则直接返回第一个值,否则返回第二个值
或运算规则 - 或运算就是找第一个True的,如果第一个值是True,则不看第二个值
- 如果第一个值是True,则直接返回第一个True,否则返回第二个值。
>>> result = 1 and 2
>>> print(result)
2
>>> result = 1 and 0
>>> print(result)
0
>>> result = 1 or 2
>>> print(result)
1
>>> result = 0 or 3
>>> print(result)
3
>>>
六、条件运算符
语句1 if 条件表达式 else 语句2
执行流程:
- 条件运算符在执行时,会对条件表达式进行求职判断
- 如果判断结果为True,则执行语句1,并返回执行结果
- 如果判断结果为False,则执行语句2,并返回执行结果
七、运算符的优先级
运算符的优先级可以根据优先级表格来查询,在表格中位置越靠下的运算符优先级越高,
- 优先级越高的优先计算
- 如果优先级一样则自左向右计算
- 在开发过程中如果遇到优先级不清楚,则可以通过小括号来改变运算顺序
逻辑运算补充
逻辑运算符可以连着使用
>>> result = 1<2<3 #相当于 1<2 and 2<3
>>> print(result)
True
>>> result = 10 < 20 >15 #相当于 10<20 and 20>15
>>> print(result)
True
>>>