Python运算和和表达式 学习笔记
光荣之路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运算和和表达式 学习笔记的更多相关文章
- python函数和lambda表达式学习笔记
1. python函数 不同于其他语言,python支持函数返回多个值 为函数提供说明文档:help(函数名)或者函数名.__doc__ def str_max(str1, str2): ''' 比较 ...
- Python 日期时间处理模块学习笔记
来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...
- 《Think Python》第17章学习笔记
目录 <Think Python>第17章学习笔记 17.1 面向对象的特性(Object-oriented features) 17.2 打印对象(Printing objects) 1 ...
- 《Think Python》第16章学习笔记
目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...
- 《Think Python》第15章学习笔记
目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...
- Lamda表达式学习笔记二
Lamda表达式学习笔记二 lamda表达式----方法引用 上一篇讲到Lamda体就是对函数式接口方法的实现 ,在方法体中我们可能会引用其他方法实现逻辑,所以在lamda体中我们可以直接引用器方法 ...
- Lamda表达式学习笔记一
Lamda表达式学习笔记一 一.Lamda语法诠释 三傻大闹宝莱坞的主人公兰彻说的一句话让我映像深刻:用简单的语言来表达同样的意 我并不是说书上的定义怎么怎么不对,而是应该理解书本上的定义,并用简单的 ...
- Python 图片转字符画 学习笔记
Python 图片转字符画 学习笔记 标签(空格分隔): Python 声明:此文章和所有代码是学习笔记,非原创,原文教程地址:https://www.shiyanlou.com/courses/37 ...
- python cookbook第三版学习笔记十:类和对象(一)
类和对象: 我们经常会对打印一个对象来得到对象的某些信息. class pair: def __init__(self,x,y): self.x=x self. ...
随机推荐
- UIViewController新方法的使用(transitionFromViewController:toViewController:duration:options:animations:completion:)
iOS5中,UIViewController新添加了几个方法: - (void)addChildViewController:(UIViewController *)childController N ...
- js从$scope外部调用$scope内部函数,跨js调用非全局函数
scope内部函数定义 //定位 $scope.LocateByPoint = function (x,y) { if(!x || !y) { window.alert("GPS坐标不存在, ...
- url中带有加号的处理方法
最近项目中出现了一个问题,图片的路径正确,但是转成URL之后无法找到... 找了各种原因之后,最后注意到URL中的图片名称和本地路径名称有点不一样,如下图 1.URL图片 2.本地路径 上网查了一下发 ...
- [译]NeHe教程 - 你的第一个多边形
原文: Your First Polygon 在第一节中我讲解了如何创建OpenGL窗体.本节我会讲解如何创建三角形和四边形.我们会用GL_TRIANGLES来创建三角形,用GL_GUADS创建四边形 ...
- 学习IIS & MVC的运行原理
我一直疑惑于以下问题,从客户端发出一个请求,请求到达服务器端是怎样跟iis衔接起来的,而iis又是怎样读取我发布的代码的,并返回服务器上的文件.这其中是怎样的一个处理过程. 1:当你从浏览器中输入一个 ...
- 通过google地图的webservice根据城市名称获取经纬度
谷歌Geocoding webservice接口获取经纬度信息,由于获取地点的数量级太大,2000多条记录,从response的xml格式中取出该地点的经纬度信息.google有访问限制,如果超出25 ...
- java高级之信号灯Semaphore
1.Semaphore概念 Semaphore是Java1.5之后提供的一种同步工具,Semaphore可以维护访问自身线程个数,并提供了同步机制.使用Semaphore可以控制同时访问资源的线程个数 ...
- 再理解 as3.0接口
As3.0 接口的理解与运用 1.把接口当作"类"来理解.你easy接受她. 我们看她的标准结构: package 包路径{ public interface 接口名称{ func ...
- SPSS统计功能与模块对照表
SPSS统计功能 - 应用速查表第一列为统计方法,中间为统计功能,最后一列为所在模块 1 ANOVA Models(单因素方差分析:简单因子) : 摘要 描述 方差 轮廓 - SPSS Base 2 ...
- jqury 如何获取 kindeditor 中textarea 的值
获取文本内容,可是的创建时怎么也不能获取,利用FF的firebug查看到自己所写的内容在一个iframe中,于是想从iframe中获取文本,想要用 $(“ifame”).html();获取内容,可是依 ...