4. 运算符
4.1 概念
- 用于执行程序代码预算,针对一个以上操作数项目来进行运算。
- 如
2 + 3
, 2 和 3为操作数,+
为运算符
4.2 分类
- 算数运算符
- 赋值运算符
- 比较运算符(关系运算符}
- 逻辑运算符
- 条件运算符(三元运算符)
4.2.1 算数运算符
+
-
*
\
\\
%
**
有浮点型则结果为浮点型,除法运算结果一定为浮点型
4.2.2 赋值运算符
赋值运算前,要给定初始值
+=
-=
*=
\=
\\=
%=
**=
4.2.3 比较运算符
- 用来比较两个值之间的关系,总会返回一个布尔值,关系成立返回
Ture
, 否则返回False
- 常规比较运算符:
>
>=
<
<=
- 特殊比较运算符
运算符 | 意义 |
---|---|
== | 比较两个值是否相等 |
!= | 比较两个值是否不等 |
is | 比较连个值是否相等,比较的是id |
is not | 比较两个值是否不等,比较的是id |
- 字符串的比较: 先比较位数,位数相等再一位一位的比较
4.2.4 逻辑运算符
运算符 | 意义 | 规则 |
---|---|---|
not | 逻辑非 | 0,空字符串,None及一些表示空性的值都会转化为False,其他所有值都可以转换为True |
and | 逻辑与 | 符号两侧值都为True时才为True,否则都为False |
or | 逻辑或 | 符号两侧有一个True时则为True,两侧都为False才为True |
- 逻辑与的非布尔值的运算: 找False,如果第一个值时False,则直接返回第一个值,否则直接返回第二个值
- 逻辑或的非布尔值的运算: 找True,如果第一个值时True,则直接返回第一个值,否则直接返回第二个值
4.2.5 条件运算符
- 条件运算符在执行时,先对条件表达式进行求值判断,若返回
True
,则执行条件语句1,若返回False
,则执行条件语句2 - 表达式
条件语句1 if 条件表达式 else 条件表达式2
注意理解以下示例
a = 20
a = 40
b = 30
res = a + 50 if a > b else b + 50
res = a if a > 50 else a - 10 if a > b else b + 50
print(res)
4.3 运算符的优先级
- 加减乘除按照数学运算的优先级进行运算
and
优先级比or
高- 运算符优先级如下(准确性有待考证)
运算符 | 意义 | 优先级 | 结合性 |
---|---|---|---|
() | 小括号 | 19 | 无 |
x[i] 或x[i1:i2:[i3]] | 索引运算符 | 18 | 左 |
x.attribute | 属性访问 | 17 | 左 |
** | 乘方 | 16 | 右 |
~ | 按位取反 | 15 | 右 |
+ (正) - (负) | 符号运算符 | 14 | 右 |
* / // % | 乘除 | 13 | 左 |
+ - | 加减 | 12 | 左 |
>> << | 位移 | 11 | 左 |
& | 按位与 | 10 | 右 |
^ | 按位异或 | 9 | 左 |
| | 按位或 | 8 | 左 |
== != > < >= <= | 比较运算符 | 7 | 左 |
is is not | is 运算符 | 6 | 左 |
in not in | in 运算符 | 5 | 左 |
not | 逻辑非 | 4 | 右 |
and | 逻辑与 | 3 | 左 |
or | 逻辑或 | 2 | 左 |
exp1 exp2 | 逗号运算符 | 1 | 左 |
作业
- 答案如下:
# 第一种
a = '521 xxx'
b = '嫁给我好吗?'
print(a + ','+b)
# 第二种
a = '嫁给我好吗?'
print('521 xxx,',a)
# 第三种
s = '521 %s,嫁给我好吗?' % 'xxx'
print(s)
# 第四种
a = 'xxx'
s = f'521 {a},嫁给我好吗?'
print(s)
- 答案如下:
import random as rand
a = rand.randint(1,100)
b = rand.randint(1,100)
c = rand.randint(1,100)
d = a if a > b else b
Max = d if d > c else c
print(Max)