常用运算符
一、算术运算符
+
加、-
减、*
乘、/
除//
整除、%
取模、**
幂运算
a = 4
b = 100
print(a + b, a - b, a * b)
# python的除法运算结果永远为float(追求精度问题)
print(b / a)
# 整除获取的是除法运算结果的整数部分,直接舍弃小数部分。
print(b // a, 99 // 10, 50 // 3)
print(50 % 3)
# 开方,得到的结果永远为float
print(4 ** 2, 16 ** 0.5)
输出:
104 -96 400
25.0
25 9 16
2
16 4.0
二、比较运算符
比较运算符用于比较两个值,并返回一个布尔值True或False。常见的比较运算符有以下几种:
- 大于(>):如果左侧的值大于右侧的值,返回True,否则返回False。
- 小于(<):如果左侧的值小于右侧的值,返回True,否则返回False。
- 大于等于(>=):如果左侧的值大于或等于右侧的值,返回True,否则返回False。
- 小于等于(<=):如果左侧的值小于或等于右侧的值,返回True,否则返回False。
- 不等于(!=):如果两个值不相等,返回True,否则返回False。
- 等于(==):如果两个值相等,返回True,否则返回False。
在比较运算符中,某些编程语言也可以使用<>表示不等于。
比较运算符的结果永远为True或False。例如:
print(2 > 3) # False
print(2 >= 3) # False
print(2 == 3) # False
print(2 != 3) # True
如果比较运算符涉及到布尔类型的运算,会自动进行类型转换。例如:
print(100 + 200 > 250) # True
print(100 + (200 < 250)) # 101
需要注意的是,比较运算符的优先级低于算术运算符。因此,在进行复合表达式计算时,应该注意使用括号来明确优先级。
练习:摄氏度与华氏度转换。C = (F - 32)/ 1.8
c_1 = 34
f_1 = c_1 * 1.8 + 32
print(f'{c_1}摄氏度等于{f_1}华氏度')
f_2 = 100
c_2 = round((f_2 - 32) / 1.8, 1)
# round(数值, 小数位数):四舍五入保留小数位数
print(f'{f_2}华氏度等于{c_2}摄氏度')
输出:
34摄氏度等于93.2华氏度
93.2华氏度等于34摄氏度
三、Python赋值运算符
赋值运算符是程序中常用的运算符之一,用于给变量赋值。Python提供了多种赋值运算符,包括:
运算符 | 描述 | 示例 |
---|---|---|
= | 简单的赋值运算符,将右边的值赋给左边的变量 | a = 5 |
+= | 加等于,等价于 a = a + b | a += 5 |
-= | 减等于,等价于 a = a - b | a -= 5 |
*= | 乘等于,等价于 a = a * b | a *= 5 |
/= | 除等于,等价于 a = a / b | a /= 5 |
//= | 整除等于,等价于 a = a // b | a //= 5 |
%= | 取模等于,等价于 a = a % b | a %= 5 |
**= | 幂等于,等价于 a = a ** b | a **= 5 |
示例
a = 10
a += 5 # 相当于 a = a + 5
print(a) # 输出 15
a -= 3 # 相当于 a = a - 3
print(a) # 输出 12
a *= 2 # 相当于 a = a * 2
print(a) # 输出 24
a /= 4 # 相当于 a = a / 4
print(a) # 输出 6.0
a //= 2 # 相当于 a = a // 2
print(a) # 输出 3.0
a %= 2 # 相当于 a = a % 2
print(a) # 输出 1.0
a **= 2 # 相当于 a = a ** 2
print(a) # 输出 1.0
复合赋值运算符
复合赋值运算符是赋值运算符的简写形式,可以将一些常见的运算简化为一行代码。例如:
a = a + 1
可以简化为:
a += 1
其他的复合赋值运算符也是类似,例如:
a = a * 2
可以简化为:
a *= 2
海象运算符
Python 3.8 引入了一种新的赋值运算符:海象运算符。这个运算符的语法是 :=
,可以将表达式的值赋给变量,并且将这个值作为整个表达式的结果。例如:
if (n := len(a)) > 10:
print(f"List a is too long ({n} elements, expected <= 10)")
这个例子中,:=
将 len(a)
的值赋给 n
,并且将 n
的值作为整个表达式的结果。这样就可以用一行代码完成了一个赋值和比较的操作。
四、逻辑运算符
1. 逻辑运算符有哪些?
and
(逻辑与运算)or
(逻辑或运算)not
(逻辑非运算)
2. and 运算
语法:
条件1 and 条件2
解释:
and
两边跟条件,and
结果为布尔类型,and
两边条件都成立的时候,结果为 True
;反之,只要有一方不成立,结果为 False
。
中断机制:
如果条件1不成立,直接给结果 False
,条件2无需再判断。
优先级
比较运算符 > 逻辑运算符(and
)> 逻辑运算符(or
)
示例:
print(3 > 2 and 2 < 5)
print(3 < 2 and 2 > 1)
输出:
True
False
3. or 运算
语法:
条件1 or 条件2
解释:
or
两边跟条件,or
结果为布尔类型,or
两边只有条件都不成立的时候,结果为 False
;反之,只要有一方成立,结果为 True
。
中断机制:
如果条件1成立,直接给结果 True
,条件2无需再判断。
示例:
print(3 < 2 or 3 < 4)
print(3 < 2 or 3 > 4)
print(4 % 2 == 0 and 9 % 2 == 0)
输出:
True
False
False
4. not 运算
语法:
not 条件
解释:
取反,获得结果的对立面。
示例:
print(not True)
print(not 1 < 2 or 2 > 3) # not 的作用域为 1 < 2
print(not (1 < 2 or 2 > 3)) # not 的作用域为整个小括号的公式
输出:
False
False
False
5. 常用运算符的优先级
- 算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
- 算术运算符:
**
>*
、/
、//
、%
>+
、-
- 如果某个条件加了小括号,优先计算小括号这个小整体。