表达式
- 由一个或者几个数字或者变量或者运算符合成第一行代码
- 通常返回一个结果
运算符
- 运算符分类
- 算数运算符
- 比较或者关系运算符
- 赋值运算符
- 逻辑运算符号
- 位运算
- 成员运算符
- 身份运算符
算数运算符
- python中没有自增自减运算符
- 算数运算符案例
算数运算符案例
# 加减乘除
a = 10 - 2
b = 10 + 2
c = 10 * 2
print(a)
print(b)
print(c)
8
12
20
# python的除法 普通、地板除(取整除)、取余。
a = 10 / 2
b = 11 //2
c = 13 % 2
print(a)
print(b)
print(c)
5.0
5
1
# 负数
a = 10 / -2
b = 11 // -2
c = 9 % -4
print(a)
print(b)
print(c)
-5.0
-6
-3
# 指数
print('\n')
a = 10 ** 2
print(a)
1000
比较运算符
- 对内容进行比较的运算符
- 其比较结果都是布尔值
- 等于 ==
- 不等于 !=
- 大于 大于等于 >, >=
- 小于 小于等于 <, <=
# ==
# 将右边的结果赋值给变量
a = 3 == 4
print(a, end='\n\n')
False
# !=
print(3 != 4, end='\n\n')
True
# 大于小于
# 可以比较字符串
print(3 <= 4)
print('Kend' > 'WZH', end='\n\n')
True
False
赋值运算符
- 将右边的值放入变量
- 优先级:从右边运算。赋值的运算级最低 在右边运算完后再赋值
赋值运算符缩写
- 所有数学运算符都可以缩写
- -=, * =, /=, //=, %=, **=,都是缩写形式
- pyhton里面没有 ++ , –
# 赋值
a = 10
print(a)
10
# 复杂赋值
a = b = 9
print(a)
print(b)
9
9
a, b = 1, 2
print(a)
print(b)
1
2
# 赋值缩写 +=
# num_1 = num_1 + 3
# 报错Name Error (num_1 变量没有初始化)
num_2 = 1
num_2 = num_2 + 3
print(num_2)
4
num_2 += 3
print(num_2)
7
逻辑运算符
- 对布尔值进行运算
- 运算规则;
- and: 与 — *
- or : 或 — +
- not: 非
- 运算结果为0则输出为False,其他值则为True
- 布尔值与数字的转化
- 数字转化为布尔值: 0 = False,其他值为 True
- 布尔值转化为数字: True = 1, False = 0
- python中的逻辑运算没有异或
- 逻辑运算的短路
- 逻辑运算式按照顺序计算, 一旦能确定式子未来的值,则不再进行运算,直接返回值
a = True
b = True
c = False
# and、or
aa = a and b # 可转化为1 * 1
print(aa)
bb = a or c
print(bb)
cc = 10 and c
print(cc)
True
True
False
# 逻辑运算短路问题
# 案例1
a = True
b = True
c = False
# aa = 1 + ...
aa = a or b and (c and a)
print(aa)
True
# 案例2
def a():
print('a')
return True
def b():
print('b')
return True
aa = a() and b()
print(aa)
print(" -- 短",'路 -- ', sep=' - ')
bb = a() or b()
print(bb)
a
b
True
-- 短 - 路 --
a
True
成员运算符
- 用来检测一个值or变量是否在里面
- in : 在里面
- not in : 不在里面
L = [1, 2, 3, 4]
# in
a = 4
aa = a in L
print(aa)
True
# not in
b = 7
print(b not in L)
True
身份运算符
- 用来确认两个变量是否是同一个变量
(检查两个变量的内存地址 id 是否是同样)- 在整数N\in[-5,256]之间, python对这些整数进行了单独处理,给了固定的内存,不会因每次更改变量而发生改变
- 不仅对小整数有这样的处理,内建的类(int,staticmamethod,object,TypeError,)也都是这样处理的。 看一个变量的内存是不是这样处理的,无需运行两次,只要看id()编号的长度就行,它们都是10位的,普通变量都是十三位的。 其实并不是每次运行结果都是一样的,比如重启一下电脑再试试。 不同的软件打开的同一个python解释器结果也是不同的(最先打开的那个会影响其他的),比如我的电脑上先打开pycharm、cmd、jupyter得到的是不同的结果。 只要把解释器全部关闭再打开某一个,其余的都会是这个软件的值。 电脑不关机的话,软件重复关闭打开id值是一样的。
- is :是
- is not :不是
# is ,is not
a = 12333
b = 256
aa = a is b
print(aa)
False
c = 12333
bb = c is a
print(bb)
False
f = 256
print(f is b)
True
运算符优先级
- 小括号有最高优先级
- 在写程序时 如果有东西需要先运算 用括号括起来 或者将运算拆分成几步 防止出现问题 养成良好习惯
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法<< 右移,左移运算符
& 位 ‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符