光荣之路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)

Python运算和和表达式 学习笔记的更多相关文章

  1. python函数和lambda表达式学习笔记

    1. python函数 不同于其他语言,python支持函数返回多个值 为函数提供说明文档:help(函数名)或者函数名.__doc__ def str_max(str1, str2): ''' 比较 ...

  2. Python 日期时间处理模块学习笔记

    来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...

  3. 《Think Python》第17章学习笔记

    目录 <Think Python>第17章学习笔记 17.1 面向对象的特性(Object-oriented features) 17.2 打印对象(Printing objects) 1 ...

  4. 《Think Python》第16章学习笔记

    目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...

  5. 《Think Python》第15章学习笔记

    目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...

  6. Lamda表达式学习笔记二

    Lamda表达式学习笔记二 lamda表达式----方法引用 上一篇讲到Lamda体就是对函数式接口方法的实现 ,在方法体中我们可能会引用其他方法实现逻辑,所以在lamda体中我们可以直接引用器方法 ...

  7. Lamda表达式学习笔记一

    Lamda表达式学习笔记一 一.Lamda语法诠释 三傻大闹宝莱坞的主人公兰彻说的一句话让我映像深刻:用简单的语言来表达同样的意 我并不是说书上的定义怎么怎么不对,而是应该理解书本上的定义,并用简单的 ...

  8. Python 图片转字符画 学习笔记

    Python 图片转字符画 学习笔记 标签(空格分隔): Python 声明:此文章和所有代码是学习笔记,非原创,原文教程地址:https://www.shiyanlou.com/courses/37 ...

  9. python cookbook第三版学习笔记十:类和对象(一)

    类和对象: 我们经常会对打印一个对象来得到对象的某些信息. class pair:     def __init__(self,x,y):         self.x=x         self. ...

随机推荐

  1. html禁止图片拖拽移动在新窗口打开

    一直觉得直接从网站的表格上复制数据挺方便的, 今天,领导突然说网站上的图片可以被别人拖走了,必须禁止,哎,果然只有领导才考虑得到这种事情啊 so, 将ondragstart="return ...

  2. 介绍C#结构体与类区别

    1. 结构体与类定义方式 结构体定义使用struct类定义使用class 结构体: struct testDemo{ int num; void action(){ } } 类: class test ...

  3. Javascript属性constructor/prototype的底层原理

    在Javascript语言中,constructor属性是专门为function而设计的,它存在于每个function的prototype属性中. 这个constructor保存了指向function ...

  4. 关于CDN对动态网站加速的一些看法

    CDN的全称是Content Delivery Network,即内容分发网络.其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘" ...

  5. IDC机房带宽突然暴涨问题!

    IDC机房带宽突然暴涨问题! 1[提出问题] [实际案例一] 凌晨3:00点某公司(网站业务)的一个IDC机房带宽流量突然从平时高峰期150M猛增至1000M,如下图: 该故障的影响:直接导致数百台服 ...

  6. lua math 库

    lua math库 (2012-05-18 17:26:28) 转载▼ 标签: 游戏 分类: Lua atan2.sinh.cosh.tanh这4个应该用不到. 函数名 描述 示例 结果 pi 圆周率 ...

  7. HTML5 2D平台游戏开发#8指令技

    一般在动作游戏中,玩家可以通过对输入设备输入一系列的指令让角色完成某个或多个特定的动作.以格斗游戏<拳皇>为例,键入↓↘→↘↓↙← + A or C可以触发IORI的必杀技八稚女: 通过一 ...

  8. java 原生定时执行程序(ScheduledExecutorService)

    package ThreadPoolTest; import java.util.Date; import java.util.concurrent.*; public class Main { pu ...

  9. php 微信开发之新增上传/获取下载临时素材

    php 微信开发之新增上传/获取下载临时素材 代码 <?php define("AppID","");//你的id define("AppSec ...

  10. 从sql走向linq的我撞死在起点上

    [本文纯个人理解,错误轻喷,非常希望能有大神指点] A left (outer) join B on A.bid=B.id 上面这句话叫做左连接,原因是left(左)join(加入,连入)被译为左连接 ...