一、 Python的算术运算

  Python的算术运算符与C语言类似,略有不同。包括加(+)、减(-)、乘(*)、除(/)、取余(%)、按位或(|)、按位与(&)、按位求补(~)、左移位(<<)、右移位(>>)、单目求反(-)、幂运算(**)、整除运算(//)、增强运算、增强矩阵乘法(@)。

  增强运算是将算术运算符或逻辑运算符放到等号的左侧,与C语言的增强运算符相同。如x+=5,表示x=x+5,该种方法CPU的处理效率高于普通运算方式,且执行优先级也高些。

  下面看看这些运算的例子,大家可以理解一下:

  >>> 10%3

  1

  >>> 10//3

  3

  >>> 10**3

  1000

  >>> n=False

  >>> n

  False

  >>> type(n)

  >>> i=0

  >>> i==n

  True

  >>> 4>>2

  1

  >>> 4<<2

  16

  >>> ~4

  -5

  >>> 2&4

  0

  >>> 2|4

  6

  >>> m=2

  >>> m**=3

  >>> m

  8

  矩阵乘法目前本人还没弄明白,如果以后弄明白了再补充。

  二、 Python的布尔类型

  在介绍比较急逻辑运算之前,需要介绍一个前面没有介绍的bool(布尔)数据类型。

  布尔数据类型是用于条件判断、比较运算和逻辑运算,只有两个值真(True)和假(False)。布尔类型其实是int的子类,False和True对应的值是0和1。但真正使用时,下面的值都将被视为假:

  False None 0 “” () [] {}

  也就是说标准值False和None、各种类型(包括浮点数、复数等)的数值0、空序列(如空字符串、空元组和空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真。

  看看下面的运算结果:

  >>> True == 1

  True

  >>> False == 0

  True

  >>> True + True

  2

  三、 比较运算

  比较运算表达式 解释

  x==y x是否等于y

  x>y x是否大于y

  x 无锡人流医院哪家好 http://www.csjlwtrl.com/

  x>=y x是否大于等于y

  x<=y x是否小于等于y

  x!=y x是否不等于y

  x is y x是否和y是同一对象

  x is not y x是否和y不是同一对象

  x in y x是否是y的元素

  x not in y x是否不是y的元素

  以上运算中的后2个主要用于复杂数据类型的成员判断,后面讲这些数据类型会用到。

  四、 逻辑运算

  逻辑运算与C语言的类似,有逻辑或(or)、逻辑与(and)、逻辑非(not),但没有C语言的简单运算符号||、&&、!。

  看看运算实例:

  >>> not 2

  False

  >>> not 0

  True

  >>> 2 and 4

  4

  >>> 2 or 4

  2

  >>> s='123'

  >>> s or 2 or 3

  '123'

  >>> 2 and 3 and s

  '123'

  从上面后几个示例看出,逻辑运算符and和or不一定都是返回True或False,or当其中参与运算的数据有个值不为False(包括False、0、空等,下同)则直接返回该数据,and当所有数据都不为False则返回最后一个数据。

  五、 运算符的优先级

  下面列出了所有运算符的优先级,数值越大,表示优先级越高。

  上述运算符中有个lambda,这是个lambda就是用来定义一个匿名函数的。老猿认为用处不大,具体内容大家可以在网上查一下。

  更正:

  在上一章节,关于Python语句部分的前面部分内容强调“必须缩进4个空格”缩进与该章节“Python的代码嵌套格式”描述不一样,实际上相关要求是遵循“Python的代码嵌套格式”的情况下,推荐使用一次缩进4个空格。

  另外关于语句中冒号的使用,只说明了那些语句后面必须有冒号,但其实冒号指出来接下来是一段(也可以只有一行)统一缩进的代码块。

Python运算符大全的更多相关文章

  1. 第2.3节 Python运算符大全

    一. Python的算术运算 Python的算术运算符与C语言类似,略有不同.包括加(+).减(-).乘(*).除(/).取余(%).按位或(|).按位与(&).按位求补(~).左移位(< ...

  2. Python运算符的优先级是怎样的?

    优先级数字越高表示优先级越高,有关运算符的详细介绍请参考<Python运算符大全>

  3. Python 资源大全中文版

    Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python 资源列 ...

  4. python运算符重载

    python运算符重载就是在解释器使用对象内置操作前,拦截该操作,使用自己写的重载方法. 重载方法:__init__为构造函数,__sub__为减法表达式 class Number: def __in ...

  5. [转载]Python 资源大全

    原文链接:Python 资源大全 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex  ...

  6. Python运算符,python入门到精通[五]

    运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...

  7. Python运算符与表达式

    Python运算符包括赋值运算符.算术运算符.关系运算符.逻辑运算符.位运算符.成员运算符和身份运算符. 表达式是将不同类型的数据(常亮.变量.函数)用运算符按照一定得规则连接起来的式子. 算术运算符 ...

  8. 2015年4月 非常干货之Python资源大全

    [非常干货之Python资源大全]Python是一门美妙的语言,简单易用,容易提升.它是一门主流语言,却没有其它专业语言的弊病,从游戏,ML,GUI到科学和数学有着巨量的函数库. 直击现场 <H ...

  9. Python 库大全

    作者:Lingfeng Ai链接:http://www.zhihu.com/question/24590883/answer/92420471来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...

随机推荐

  1. 【MySQL】Mysql模糊查询like提速优化

    一般情况下like模糊查询的写法为(field已建立索引): SELECT `column` FROM `table` WHERE `field` like '%keyword%'; 上面的语句用ex ...

  2. OSPF协议介绍及配置

    一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,而对于这个网 ...

  3. mysql5.7的主从切换

    mysql5.7的主从切换 主库: master 10.11.0.211 从库: slave 10.11.0.210 目标:主从切换,将slave切换为master,master切换为slave 一. ...

  4. Python3基础 print %xX 十六进制大小写

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  5. 【转】【Centos】Linux(Centos7)下搭建SVN服务器

    系统环境:centos7.2 第一步:通过yum命令安装svnserve,命令如下: yum -y install subversion 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停 ...

  6. Eclipse 修改(重定向)SVN地址

    由于SVN服务器IP变了,需要重定向SVN的路径 1.点击右上角1位置的按钮,然后选择需要打开的窗口(SVN资源库) 2.右击SVN资源库中的项目,选择重定向,然后修改新的URL即可 1. 进入本地s ...

  7. [ Docker ] 基础的网络应用

    1. Docker 基本网络模型 Docker 有 4 种基本的网络模型: bridge 桥接模式 host 网络模式 container 联盟模式 none 模式 Docker daemon 在启动 ...

  8. Docker Overview

    Docker 是一个用于开发.交付和运行应用的开放平台,Docker 设计用来更快的交付你的应用程序.Docker 可以将你的应用程序和基础设施层隔离,并且还可以将你的基础设施当作程序一样进行管理.D ...

  9. Linux内核中的双向链表struct list_head

    一.双向链表list_head Linux内核驱动开发会经常用到Linux内核中经典的双向链表list_head,以及它的拓展接口和宏定义:list_add.list_add_tail.list_de ...

  10. 10步成为一个优秀的Java开发!

    1.拥有坚实的基础并理解面向对象原则 Java开发人员必须深刻理解面向对象编程.如果没有面向对象编程的坚实基础,就无法感受到像Java这样的面向对象编程语言的美感. 如果你不太了解现象对象编程是什么, ...