• 表达式
○ 有一个或者几个数字或者变量或者运算符合成的一行代码
○ 通常返回一个结果
• 运算符
○ 由一个以上的之经过一系列的运算得到新值的过程就叫运算
○ 用来操作运算的符号就是运算符
○ 运算符分类
§ 算数运算符
§ 比较或者关系运算符
§ 复制运算符
§ 逻辑运算符
§ 位运算
§ 成员运算符
§ 身份运算符
○ 算数运算符
§ 通常进行算数运算的符号
§ 通常用来加减乘除
§ python没有自增自减运算符
§ 在python中除法会分为以下三种
□ 普通除法
® 符号:/
在python2.X和python3.X会有不同,在Python2中得到是一个整数, 在python中得到的是一个小数
□ 地板除
® 符号: //
® 取得除后的整数
□ 取余
® 符号: %
® 取得整除后的余数
○ 比较运算符
§ 对两个内容进行比较的运算符
§ 结果一定是一个布尔值,即True/False
□ 等于: ==
一个等号是赋值,两个等号是比较
○ 赋值运算符
§ 把一个值放到一个变量里面去
§ 赋值符号: =
赋值运算符的运算优先级是最低的,无论一行代码中无论有多少运算,都是最后得到一个结果赋值给左边的变量中
赋值运算符的缩写
□ 所有的运算符都可以缩写
® -=
® +=
® *=
® /=
® //=
® %=
□ 在python中没有++(自增),--(自减)
○ 逻辑运算符
§ 对布尔类型变量或者值进行运算的符号
§ and : 逻辑与
§ or : 逻辑或
§ not : 逻辑非
§ python里面的逻辑运算没有异或
§ 运算规则
□ and看作乘法,or看作加法
□ True看作1,False看作0
□ 则逻辑运算符就能转换成整数数学的运算
最后结果如果是0则为False,否则为True
□ 短路问题
® 当一段代码在执行过程中就已经早就知道的结果的代码时,后面的代码是不会执行的,如果把一段逻辑运算代码翻译为数学的运算时,当有or逻辑或运算时,后面的结果无论是什么都会是1+n,结果必定是不等于0的,所以后面的代码都不会去执行
○ 成员运算符
§ 用来检测一个值或者一个变量是否在某个集合里面
§ in : 在里面
§ not in :不在里面
○ 身份运算符
§ 用来确定两个变量是否是同一变量
§ is : 是 (变量运算符)
§ not is : 不是
重点
□ 在上面的代码中为什么值又是True了呢?因为is比较的是a这个变量是b这个变量吗?在案例1中a这个变量的内存地址指向的不是b这个内存地址,所以他们不是一个变量,所以返回的是false,但是在案例2中,a的值和b的值一样但是为什么有是True呢?因为在python语言中,有一些我们常用的数字值,python解释去已经为我们开辟了存放这些数据的内存空间,所以我们赋值的时候,python只需要把已经开辟好的内存空间给到a和b就行了,所以a和b的内存空间是一样的,结果为True
□ 在Python中对整数Nin[-5,256],解释器对他们做了单独的处理,放进了固定的内存中,不因为你每次运行而变化
运算符优先级问题
还更多想要了解的欢迎大家讨论留言,或者私信我。