Python学习笔记 - 运算符详解

本内容均来自在北京图灵学院Python免费全栈学习的课堂笔记

运算符

  • 用来操作运算的符号
  • 如+ - * / = ==
  • 运算符分类
    • 算数运算符
    • 比较或者关系运算符
    • 逻辑运算符
    • 位运算
    • 成员运算符
    • 身份运算符

算数运算符

  • 用来进行算术运算的符号
  • 通常用来表示加减乘除
  • python没有自增自减运算符
    案例:
# 算数运算符
# 加减乘除跟数学意义基本一致
a = 34 * 23
print(a)
# python除法分为普通除法,地板除,取余
#正常除法
#此操作符在2.x和3.x中有些不同
b = 9 / 3
print(b)
#地板除(取整除)
a = 9 // 2
print(a)
#取余除
a = 9 % 2
print(a)
# 除以负数的结果参考取余的定义
a = 9 % -4
b = 9 // -4
print(a)
print(b)
# 指数
a = 7 ** 2
print(a)

执行结果:

782
3.0
4
1
-3
-3
49

比较运算符

  • 对两个内容进行比较的运算符
  • 结果一定是一个布尔值,即Ture/False
    案例:
# 比较运算 == != > < >= <=
a = 3 == 4
b = 3 != 4
print(a)
print(b)
print("sjkdj" > "sdasd")

执行结果:

False
True
True

赋值运算符

  • 把一个值放到变量里边去
    案例:
# 赋值符号 = 运算优先级最低
a = 9
# 复杂赋值
a = b = 9
a,b = 1,2
#赋值的缩写
c = 4
c = c + 3
print(c)
# 注意下面的符号仅仅是一个缩写
c += 3
print(c)
# 所有的数学运算符都可以缩写
# -=,+=,*=,/=,**=,%=,//=,都是缩写形式
# python里面没有++,--,

执行结果:

7
10

逻辑运算符

  • 布尔类型变量或者值进行运算的符号
  • and:逻辑与
  • or:逻辑或
  • not:逻辑非
  • python里面的逻辑运算没有异或
  • 运算规则:
    • and看作乘法,or看作加法
    • True看作1,False看作0
    • 则逻辑运算就能转换成整数数学运算
    • 最后结果如果是0则是False,否则是True
  • 逻辑运算的短路问题
    • 逻辑运算式按照运算顺序计算每一单能够确定整个式子未来的值,则不再进行计算,直接返回

案例:

# 逻辑表达
a = True
b = True
c = False
d = a and b
print(d)
dd = a and c
print(dd)
e = 100 and c
print(e)
# 布尔值跟数字的转换
# 数字转换成布尔值的时候,0 = False,其余数字 = True
# 布尔值转换成数字的时候,False = 0,True = 1

执行结果

True
False
False

短路问题案例:

# 短路问题的案例
a = True
b = True
c = False
aa = a or b and (a and b)# 转换成算术:1 + ... ...
print(aa)
True
# 短路问题的案例2
def a():
    print('a')
    return True
def b():
    print('b')
    return True
if a() and b():
    print("AAAAAAA")
# 字符串"*"重复20遍
print("*" * 20)
if a() or b():# 短路发生 b()函数就不会执行
    print("BBBBBBB")
a
b
AAAAAAA
********************
a
BBBBBBB

成员运算符

  • 用来检测一个值或者变量是否在某个集合里面
  • in:成员运算符
  • not in: 不在里面的意思
# in 案例
L = [1,2,3,4,5]
a = 6
aa = a in L # 判断6是否在数组L中
bb = a not in L # 判断6是否不在数组L中
print(aa)
print(bb)
False
True

身份运算符

  • 用来确定两个变量是否是同一个变量
  • is: 变量运算符
  • is not:不是
  • 学python的想必都知道,对整数N in [-5,256],解释器对他们做了单独的处理,放进了固定的内存中,不因你每次运行而变化
  • 不仅对小的整数有这样的处理,内建的类(int,staticmamethod,object,TypeError…)也都是这样处理的
  • 看一个变量的内存是不是这样处理的,无需运行两次,只要看id()编号的长度就行,它们都是10位的,普通变量都是13位的
  • 其实并不是每次运行的结果都是一样的,比如重启一下电脑再试试
  • 不同的软件打开的同一个python解释器结果也是不同的(最先打开的那个会影响其他的),比如我的电脑上先打开pycharm、cmd、jupyter得到的是不同的结果
  • 只要把解释器全部关掉再打开某一个,其余的都会是这个软件的值
  • 电脑不关机的话,软件重复关闭打开id值是一样的
  • (当然同一台电脑上的不同python解释器结果肯定也不相同,不同电脑那就更不用说了)
# 身份运算符
a = 103924
b = 103924
c = 100
d = 100
aa = a is b
bb = a is c
cc = a is not b
dd = c is d
# a,b仅仅是值一样,并不代表a,b是一个变量
print(aa)
print(bb)
print(cc)
# 值较小的数字在内存中已经分配好了(-5到256之间)
print(dd)
False
False
True
True

运算符的优先级问题

  • 小括号具有最高优先级
  • 运算符的优先级:
    • 指数运算符具有最高优先级(**)
    • ‘~’ ,’+’ ,’-’ 按位翻转,一元加号和减号(最后两个的方法名为 +@ 和 -@)
    • ‘*’ ,’/’ ,’%’ ,’//’, 乘,除,取模和取整除
    • “+”,"-"加减法
    • “>>” "<< 右移,左移运算符
      & 位 ‘AND’
      ~ | 位运算符
    • <= >= < > 比较运算符
    • == != 等于运算符
    • = %= /= //= -= += *= **= 赋值运算符
    • is is not 身份运算符
    • in not in 成员运算符
    • not or and 逻辑运算符
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值