『Python基础』第7节:基本运算符

一. 基本运算符

运算按种类可以分为: 算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算.

今天我们只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算

1.1 算数运算

以下假设变量: a = 10, b = 20

运算符描述实例
+ - 两个对象相加a + b = 30
- - 得到负数或者是一个数减去另一个数-b = -20, a - b = -10
* - 两个数相乘或者是返回一个被重复若干次的字符串a * b = 200
/ - x 除以 yb / a = 2
%取模 - 返回除法的余数b % a = 0
** - 返回x的y次幂a ** b = 100000000000000000000
//整除 - 返回商的整数部分9 // 2 = 4, 9.0 // 2.0 = 4.0

1.2 比较运算

以下假设变量: a = 10, b = 20

运算符描述实例
==等于 - 比较对象是否相等(a == b) 返回 False
!=不等于 - 比较两个对象是否不相等(a != b) 返回 True
<>不等于 - 比较两个对象是否不相等(a <> b) 返回 True. 类似 !=
>大于 - (x > y), 返回x是否大于y(a > b) 返回 False
<小于 - (x < y), 返回x是否小于y.(a < b) 返回 True
>=大于或等于 - (x >= y) 返回x是否大于等于y(a >= b) 返回 False
<=小于或等于 - (x <= y) 返回x是否小于等于y(a <= b) 返回 True

所有比较运算符返回1表示真, 返回0表示假.

1.3 赋值运算

以下假设变量: a = 10, b = 20

运算符描述实例
=简单的赋值运算符c = a + b, 将a + b的运算结果赋值给c
+=加法赋值运算符c += a, 等效于 c = c + a
-=减法赋值运算符c -= a, 等效于 c = c - a
*=乘法赋值运算符c *= a, 等效于 c = c * a
/=除法赋值运算符c /= a, 等效于 c = c / a
%=取模赋值运算符c %= a, 等效于 c = c % a
**=幂赋值运算符c **= a, 等效于 c = c ** a
//=取整除赋值运算符c //= a, 等效于 c = c // a

1.4 逻辑运算

以下假设变量: a = True, b = False

运算符描述实例
and布尔 - 如果x为False, x and y返回False, 否则它返回y的计算值.(a and b) 返回 False
or布尔 - 如果x为True, 它返回True, 否则它返回y的计算值(a or b) 返回 True
not布尔 - 如果x为True, 返回False; 如果x为False, 它返回Truenot(a and b) 返回 True

1.4.1 逻辑运算的优先级

在没有括号()的情况下not优先级高于and, and优先级高于or, 即优先级关系为() > not > and > or, 同一优先级从左往右计算.

例题:

判断下列逻辑语句的True, False

1. 3>4 or 4<3 and 1==1
2. 1 < 2 and 3 < 4 or 1>2 
3. 2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
4. 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
5. 1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6. not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

1.4.2 逻辑运算的快速运算

x or y, x为真, 值就是x; x为假, 值就是y

x and y, x为真, 值就是y; x为假, 值就是x

例题:

求出下列逻辑语句的值

8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6

1.5 成员运算

以下假设变量x = 2, y = [1, 2, 3, 4]

运算符描述实例
in如果在指定的序列中找到值, 返回True, 否则返回False(x in y), 返回True
not in如果在指定的序列中没有找到值, 返回True, 否则返回False(x not in y), 返回False

例题:

判断子元素是否在原字符串(字典, 列表, 集合)中

print('喜欢' in 'dkfljadklf喜欢hfjdkas')
print('a' in 'bcvd')
print('y' not in 'ofkjdslaf')

二. Python运算符的优先级

以下表格列出了从最高到最低优先级的所有运算符

运算符描述
**指数(最高优先级)
~, +, -按位翻转, 一元加号[+2], 一元减号[-2] (注意与加法, 减法区分)
*, /, %, //乘, 除, 取模, 整除
+, -加法, 减法
>>, <<右移, 左移
&AND
^, |位运算符
<=, <. >, >=比较运算符
<>, ==, !=等于运算符
=, %=, /=, //=, -=, +=, *=, **=赋值运算符
is, is not身份运算符
in, not in成员运算符
not, and, or逻辑运算符