Python的运算符
1. 运算符
- 在Python语言中,将具有运算功能的符号称为运算符
1.1 运算符的概念
- 运算符⽤于执⾏程序代码运算,会针对⼀个以上操作数项⽬来进⾏运算。例如:2 + 3,其操作数是2和3,⽽运算符则是“+”
1.2 运算符的分类
- 算术运算符
- 赋值运算符
- ⽐较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
2. 算术运算符
- 加法运算符:表现形式 + ,实现两个对象相加,相加的两个对象可以是数值型、字符串。假设变量a为10,变量b为20,a + b 输出结果是30
- 减法运算符 :表现形式 - ,实现用一个数减去另一个数或才得到负数,减法对象不能是字符串。假设变量a为10,变量b为20,a - b 输出结果是-10
- 乘法运算符: 表现形式 * ,实现两个数相乘或者返回一个被重复若干次的字符串。假设变量a为10,变量b为20,a * b 输出结果是200;‘hello’ * 3的输出结果是:’hellohellohello‘
- 除法运算符 :表现形式 /,实现x除以y,结果总会返回一个浮点数。假设变量a为10,变量b为20,b/a的 输出结果是2.0
- / /整除,取整除运算符,返回商的整数部分,不包括余数,只会保留计算后的整数位,整型的两个数相除,总会返回⼀个整型,如9//2输出结果是4;两浮点数的整除,仍然返回浮点结果,如9.0//2.0输出结果是4.0
- % 取模运算符,求两个数相除的余数,返回除法的余数,如9%3输出结果是0,9%4输出结果是1
- ** 幂运算符,求⼀个值的⼏次幂,返回x的y次幂。如10**2为10的2次方,输出结果是100
3. 赋值运算符
- 赋值运算符的含义是给某变量或表达式设置一个值,例如:"a = “,表示将值"5"赋给变量"a”。在Python语言中,有两种赋值运算符,分别是基本赋值运算符和复合赋值运算符。
- 基本赋值运算符
- 基本赋值运算符记为"=",由"=“连接的式子称为赋值表达式。简单来说,基本赋值运算符就是实现把”="右侧的值赋值给左侧的变量。
- 复合赋值运算符
- 为了简化程序并提高编译效率,Python语言允许在赋值运算符"="之前加上其它运算符,这样就构成了复合赋值运算符。赋值运算符的特殊写法 x = x + 3 其实是和 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 )
- %= (x %= 3 相 当 于 x= x % 3 )
- 基本赋值运算符
4. ⽐较运算符
- ⽐较运算符⽤来⽐较两个值之间的关系,总会返回⼀个布尔值.如果关系成⽴,返回True,否则返回False
5. 逻辑运算符
5.1 not 逻辑⾮
- not可以对符号右侧的值进⾏⾮运算对于布尔值,⾮运算会对其进⾏取反操作,True变False,False变True
5.2 and 逻辑与
- and可以对符号两侧的值进⾏与运算。 只有在符号两侧的值都为True时,才会返回True,只要有⼀个False就返回False
- 与运算是找False的,如果第⼀个值为False,则不再看第⼆个值
5.3 or 逻辑或
- 或运算两个值中只要有⼀个True,就会返回True
- 或运算是找True的
5.4 ⾮布尔值的与或运算
- 当我们对⾮布尔值进⾏与或运算时,Python会将其当做布尔值运算,最终会 返回原值
- ⾮布尔值与运算的规则
- 与运算是找False的,如果第⼀个值是False,则不看第⼆个值。如果第⼀个值是False,则直接返回第⼀个值,否则返回第⼆个值
- ⾮布尔值或运算的规则
- 或运算是找True的,如果第⼀个值是True,则不看第⼆个值。如果第⼀个 值是True,则直接返回第⼀个值,否则返回第⼆个值
6. 条件运算符(三元运算符)
- 条件运算符在执⾏时,会先对条件表达式进⾏求值判断
- 如果判断结果为True,则执⾏语句1,并返回执⾏结果 如果判断结果为False,则执⾏语句2,并返回执⾏结果 .
- 语法: 语句1 if 条件表达式 else 语句2
- 经典习题:现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
- 实现方式为:
- a = 20
b = 30
c = 40
m = a if (a > b and a > c) else b if (b > a and b > c) else c
print(m)
7. 运算符的优先级
- 下表总结了Python中的运算符优先级,从最低优先级(最低绑定)到最高优先级(最高绑定)。同一框中的运算符具有相同的优先级。除非明确给出语法,否则运算符为二进制。同一框中的运算符从左到右分组(除幂运算,从右到左分组)。
- 请注意,比较,成员资格测试和身份测试均具有相同的优先级,并且具有“ 比较”部分中所述的从左到右的链接功能 。