1.1.2 运算符与表达式(Django 基础学习细节)
Python 的运算符和表达式是编程的基础,也是后续 Django 业务逻辑、模型处理等的常用工具。下面详细讲解各类运算符、常见表达式及优先级。
一、算术运算符
用于数值计算,适用于 int、float 类型:
运算符 | 作用 | 示例 | 结果 |
---|---|---|---|
+ |
加法 | 3 + 2 |
5 |
- |
减法 | 3 - 2 |
1 |
* |
乘法 | 3 * 2 |
6 |
/ |
除法 | 3 / 2 |
1.5 |
// |
整除 | 3 // 2 |
1 |
% |
取余 | 3 % 2 |
1 |
** |
幂运算 | 3 ** 2 |
9 |
示例:
python
a, b = 10, 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.333...
print(a // b) # 3
print(a % b) # 1
print(a ** b) # 1000
二、关系运算符
用于比较两个值,返回布尔值(True/False):
运算符 | 作用 | 示例 | 结果 |
---|---|---|---|
> |
大于 | 3 > 2 |
True |
< |
小于 | 3 < 2 |
False |
>= |
大于等于 | 3 >= 3 |
True |
<= |
小于等于 | 2 <= 3 |
True |
== |
等于 | 3 == 2 |
False |
!= |
不等于 | 3 != 2 |
True |
示例:
python
score = 85
print(score >= 60) # True
print(score == 100) # False
三、逻辑运算符
用于连接或反转布尔值:
运算符 | 作用 | 示例 | 结果 |
---|---|---|---|
and |
与 | True and False |
False |
or |
或 | True or False |
True |
not |
非 | not True |
False |
示例:
python
a, b = True, False
print(a and b) # False
print(a or b) # True
print(not a) # False
age = 18
is_student = True
print(age >= 18 and is_student) # True
四、位运算符
用于二进制操作,常用于底层编程:
运算符 | 作用 | 示例 | 结果 |
---|---|---|---|
& |
按位与 | 5 & 3 |
1 |
` | ` | 按位或 | `5 |
^ |
按位异或 | 5 ^ 3 |
6 |
~ |
按位取反 | ~5 |
-6 |
<< |
左移 | 5 << 1 |
10 |
>> |
右移 | 5 >> 1 |
2 |
示例:
python
x, y = 5, 3
print(x & y) # 1 二进制: 101 & 011 = 001
print(x | y) # 7 二进制: 101 | 011 = 111
print(x ^ y) # 6 二进制: 101 ^ 011 = 110
print(~x) # -6 取反
print(x << 1) # 10 左移一位
print(x >> 1) # 2 右移一位
五、成员运算符
用于判断某元素是否在序列(字符串、列表、元组、字典、集合)中:
运算符 | 作用 | 示例 | 结果 |
---|---|---|---|
in |
在...中 | 'a' in 'abc' |
True |
not in |
不在...中 | 1 not in [2,3] |
True |
示例:
python
lst = [1, 2, 3]
print(2 in lst) # True
print(4 not in lst) # True
text = "Django"
print("j" in text) # True
六、身份运算符
用于判断两个变量是否引用同一对象:
运算符 | 作用 | 示例 | 结果 |
---|---|---|---|
is |
是同一对象 | a is b |
True/False |
is not |
不是同一对象 | a is not b |
True/False |
示例:
python
a = [1,2]
b = a
c = [1,2]
print(a is b) # True
print(a is c) # False
print(a == c) # True(值相等,但不是同一对象)
七、表达式优先级
Python 表达式有严格的优先级,影响计算顺序:
- 括号
()
最优先 - 幂运算
**
- 正负号
+x, -x
- 乘除、整除、取余
*, /, //, %
- 加减
+, -
- 位运算符
<<, >>, &, |, ^
- 关系运算符
>, <, >=, <=, ==, !=
- 成员、身份运算符
in, not in, is, is not
- 逻辑运算符
not
,and
,or
示例:
python
result = 2 + 3 * 4 # 2 + (3 * 4) = 14
result = (2 + 3) * 4 # (2 + 3) * 4 = 20
result = 2 ** 3 ** 2 # 2 ** (3 ** 2) = 2 ** 9 = 512
result = not 3 > 5 or 2 < 4 # not False or True = True
可用括号强制优先级,建议在复杂表达式中多用括号提升可读性。
八、实用小结
- 掌握各类运算符,为后续条件判断、循环、数据处理和 Django 业务逻辑打下坚实基础。
- 理解优先级,避免因顺序错误导致结果异常。
- 多用括号确保表达式计算顺序正确、代码可读性高。