Python 提供了丰富的运算符,用于执行各种操作,包括算术运算、比较运算、逻辑运算、位运算等。本文将详细介绍 Python 中的各类运算符及其用法,并通过示例帮助你更好地理解和掌握。
1. 算术运算符
算术运算符用于执行基本的数学运算。
1.1 常见运算符
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法 | 3 + 2 → 5 |
- | 减法 | 5 - 3 → 2 |
* | 乘法 | 2 * 3 → 6 |
/ | 除法 | 10 / 2 → 5 |
% | 取模(取余数) | 10 % 3 → 1 |
** | 幂运算 | 2 ** 3 → 8 |
// | 整除(取整数部分) | 10 // 3 → 3 |
1.2 课后练习
练习 1:买西瓜
超市的西瓜 13 元一个,问:你拿 100 元可以买几个西瓜,剩余几元?
print('可以买', 100 // 13, '个西瓜,剩余', 100 % 13, '元')
练习 2:计算时间
现在是 18:02:31,请问距离凌晨 0:0:0 过了多少秒?
second = 18 * 60 * 60 + 2 * 60 + 31
print('距离凌晨 0:0:0 过了', second, '秒')
练习 3:时间转换
已知从凌晨 0:0:0 到现在已经过了 63320 秒,请问现在是几时几分几秒?
s = 63320
hour = s // 3600
minute = s % 3600 // 60
second = s % 60
print('现在是:', hour, ':', minute, ':', second)
2. 比较运算符
比较运算符用于比较两个值并返回布尔值 True
或 False
。
运算符 | 描述 | 示例 |
---|---|---|
== | 等于 | 3 == 3 → True |
!= | 不等于 | 3 != 2 → True |
< | 小于 | 3 < 5 → True |
> | 大于 | 5 > 3 → True |
<= | 小于等于 | 3 <= 3 → True |
>= | 大于等于 | 5 >= 3 → True |
3. 逻辑运算符
逻辑运算符用于连接布尔值并返回布尔值。
3.1 常见运算符
运算符 | 描述 | 示例 |
---|---|---|
and | 与(逻辑与) | True and False → False |
or | 或(逻辑或) | True or False → True |
not | 非(逻辑非) | not True → False |
3.2 运算规则
-
and
:两者同时为真,结果才为真。 -
or
:只要有一个为真,结果就为真。 -
not
:将表达式的结果取反。
3.3 常见错误
A and B 结果为False时 那么B表达式就不运行 整个表达式A and B 的结果就为A表达式
A and B 结果为True时 整个表达式A and B 的结果就为B表达式
def fn1():
print("fn1执行了")
return 0
def fn2():
print("fn2执行了")
return 200
re=fn1() and fn2() # re结果为False,fn2并未执行
print(re)#0
A or B 结果为True 那么B表达式就不运行 整个表达式A and B 的结果就为A表达式
A or B 结果为False 整个表达式A and B 的结果就为B表达式
x1=20
x2=30
re=x1>18 or x2>18
print(re) #True
x1=0
x2=200
re=x1 or x2
print(re) #200
3.4 练习
写一个程序,输入一个整数,判断这个整数是奇数还是偶数。
x = int(input("请输入一个整数: "))
if x % 2 == 0:
print(x, "是偶数")
else:
print(x, "是奇数")
4. 赋值运算符
赋值运算符用于给变量赋值。
运算符 | 描述 | 示例 |
---|---|---|
= | 赋值 | x = 10 |
+= | 加法赋值 | x += 5 → x = x + 5 |
-= | 减法赋值 | x -= 3 → x = x - 3 |
*= | 乘法赋值 | x *= 2 → x = x * 2 |
/= | 除法赋值 | x /= 2 → x = x / 2 |
%= | 取模赋值 | x %= 3 → x = x % 3 |
**= | 幂运算赋值 | x **= 2 → x = x ** 2 |
//= | 整除赋值 | x //= 2 → x = x // 2 |
5. 位运算符
位运算符用于对整数按位进行操作。
5.1 常见运算符
运算符 | 描述 | 示例 | ||
---|---|---|---|---|
& | 按位与 | 0b1011 & 0b1101 → 0b1001 | ||
| | 按位或 | 0b1011 | 0b1101 → 0b1111 | ||
^ | 按位异或 | 0b1011 ^ 0b1101 → 0b0110 | ||
~ | 按位取反 | ~0b1011 → -0b1100 | ||
<< | 左移位 | 0b1011 << 2 → 0b101100 | ||
>> | 右移位 | 0b1011 >> 2 → 0b0010 |
6. 身份运算符
身份运算符用于比较对象的内存地址。
运算符 | 描述 | 示例 |
---|---|---|
is | 判断对象是否相同 | a is b |
is not | 判断对象是否不同 | a is not b |
7. 成员运算符
成员运算符用于检查一个值是否是某个集合的成员。
运算符 | 描述 | 示例 |
---|---|---|
in | 判断值是否存在于序列中 | 5 in [1, 2, 3, 4, 5] → True |
not in | 判断值是否不存在于序列中 | 6 not in [1, 2, 3, 4, 5] → True |
8. 三目运算符
三目运算符(条件运算符)用于简化条件判断。
语法
value_if_true if condition else value_if_false
示例
max_value = a if a > b else b
9. 运算符优先级
运算符的优先级决定了表达式中运算的执行顺序。以下是常见运算符的优先级(从高到低):
-
()
(括号) -
**
(幂运算) -
~
(按位取反) -
*
、/
、%
、//
(乘法、除法、取模、整除) -
+
、-
(加法、减法) -
<<
、>>
(左移、右移) -
&
(按位与) -
^
(按位异或) -
|
(按位或) -
==
、!=
、<
、>
、<=
、>=
(比较运算符) -
is
、is not
(身份运算符) -
in
、not in
(成员运算符) -
not
(逻辑非) -
and
(逻辑与) -
or
(逻辑或)
10. 总结
-
算术运算符:用于数学运算。
-
比较运算符:用于比较值。
-
逻辑运算符:用于布尔运算。
-
赋值运算符:用于变量赋值。
-
位运算符:用于按位操作。
-
身份运算符:用于比较对象内存地址。
-
成员运算符:用于检查值是否在序列中。
-
三目运算符:简化条件判断