光荣之路Python公开课第二讲 Python运算符和表达式.

一 Python运算符

Python运算符包括 算术运算符,赋值运算符,位运算符,逻辑运算符,身份运算符,成员运算符.

1. 算术运算符包括 +, -, *, /, %, **, //.

  其中需要注意的是 / 如果需要浮点数的除法则将除数或者被除数写为浮点数即可如 3.0/2 = 1.5. 如果写成3/2 则会得到1. '//' 则做的是整除.

2. 赋值运算符 '='.

  将 '=' 右边的值赋值给左边的变量. 等号右边可以是一个简单的值也可以为表达式.

  如: val = 2, val = 3+3.

  赋值运算符又可以衍生出一下的赋值: +=, -=, *=, /=, %=, **=, //=.

  如: a += 3 表达的意思和 a = a + 3 一样. 其他几个原理类似.

3. 位运算符 '&', '|', '^', '~', '<<', '>>'

  &: 按位与运算: 运算符两侧的数的相对应的二进制位的 "与" 运算, 两者都为1 则为1否则为0.

    如: 1 & 2-> 0001 & 0010->0000 结果为0.

  |: 按位或运算: 运算符两侧的数的相对应的二进制位的 "或" 运算, 两者都为0 为0,其他情况为1

    如: 1 | 2 ---- 0001 | 0010 ----- 0011 结果为3.

  ^: 按位抑或: 运算符两次的输相对应的二进制位的 "异或" 运算, 两者相同为0,不同为1

    如: 1^2 ----0001^0010 ->---0011 结果为3.

  <<: 位左移: 运算符左侧的数的二进制位向左侧移动"运算符右侧" 数字个二进制位.右侧补0

    如: 3<<2 ---- 0011<<2 -----1100 结果为12(简便算法为 3 * (2**2))

  >>: 位右移: 运算符左侧的数字的二进制位向右移动"运算符右侧" 数字个二进制位,左侧补零

    如: 16>>2 -----1000<<2-----0010 结果为2(简便运算为8/(2**2))

  ~: 取反: 运算符各二进制位取反.

    如: ~3------~0011-----1100 结果为-1(第一位代表符号位.)

    原数和取反后的值相加为-1

4.逻辑运算符, 包括 and, or, not

  and: and两边都为真则为真, 否则为假. (懒人运算如果and左边为假则不判断右边的结果,直接判定结果为假)

  or: or 两边至少有一个为真则为真, 两个都为假为假(懒人运算如果or左边为真则不判断右边的结果,直接判定结果为真)

  not: 将not后面的真假值取反. 如果原值为真加 not后则得到假, 反之得到真.

5. 身份运算符: is, is not

  is: 如果两个变量指向内存中的同一块区域则判定两则身份相同. 可用id()获取当前变量指向的内存地址

  is not: 和is相反

6. 成员运算符: in, not in

  in:  判断某个字符是否存在一个字符串/列表/元组等中. 如果在则返回真, 否则返回假.

  如: 'a' in 'abcd' 返回真

  not in: 判断某个字符是否存 不在 一个字符串/列表/元组等中. 如果不在则返回真,否则返回假

  如: 'a' not in 'abcd' 返回假

7. 运算符优先级

  个人认为完全没有必要去背运算符优先级, 判断不清楚的时候加括号就好了.

二 Python表达式

  表达式是将不同的数据(变量,函数等)用运算符号按一定的规则链接起来的式子

如下都是合法的Python表达式

1+15

zhzhgo-1

i*3+j

zhzhgo/9

3**2

(1+2) * (10-5)

最新文章

  1. Block Markov Coding &amp; Decoding
  2. c++/java/python priority_que实现最大堆和最小堆
  3. a版本冲刺第一天
  4. js图片放大效果
  5. 单例模式总结(Java版)
  6. win7下自写驱动导致开机蓝屏调试过程
  7. psy 2
  8. NHibernate学习教程(6)--事务Transactions
  9. CSS你所不知的伪元素的用法
  10. shell的输入和输出
  11. BigInteger类及方法应用
  12. 云计算三种服务模式——IaaS、PaaS和SaaS
  13. 解决使用redis作为session缓存 报错 Error: no such key 的问题
  14. Ubuntu下Mongodb和Robo3T的安装与使用
  15. CF 1033 D. Divisors
  16. window有哪写事件?
  17. DD-WRT
  18. 洛谷P2261 [CQOI2007] 余数求和 [数论分块]
  19. windows 模拟用户会话创建进程
  20. 启动startUML的时候报错“&quot;Exception EOleSysError in module StarUML.exe at 000AD559. &quot;

热门文章

  1. HTML5 2D平台游戏开发#8指令技
  2. scala 编写wordCount
  3. Linux个人常用命令汇总
  4. spring download
  5. 《TomCat与Java Web开发技术详解》(第二版) 第六章节的学习总结 ---- JSP技术
  6. 【转】使用Python学习selenium测试工具
  7. TSharding源码阅读-MapperShardingInitializer
  8. vim visual模式 复制
  9. Android异步处理三:Handler+Looper+MessageQueue深入详解
  10. ios 动画 创建一个UIImageView并将其属性设置animationImages为UIImages 的数组