2-Python3从入门到实战—基础之运算符

Python从入门到实战系列——目录

Python语言支持以下类型的运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

算术运算符

  • Python中算术运算符包含:+,-,*,/,%,**,//

    a = 10
    b = 5
    a + b  返回结果 15
    a - 5  返回结果 5
    a * b  返回结果 50
    a / b  返回结果 2.0         # / 总是返回浮点数
    a % b  返回结果 0           # % 表示a除以b取余数
    a ** b 返回结果 100000      # ** 表示 a 的 b 次方
    a // b 返回结果 2           # // 表示 a 除以 b 的商的整数部分
    10.0 // 5.0 返回结果 2

比较运算符

  • Python中比较运算符包含:>,<,>=,<=,==,!=

    a = 10
    b = 5
    ( a > b )   返回结果    True
    ( a < b )   返回结果    False
    ( a >= b )  返回结果    True
    ( a <= b )  返回结果    False
    ( a == b )  返回结果    False
    ( a != b )  返回结果    True

赋值运算符

  • Python中赋值运算符包含:=,+=,-=,*=,/=,%=,**=,//=

    a = 10
    b = 20
    c = a + b       # 将 a + b 的值赋值给c
    c += a          # 相当于 c = c + a
    c -= a          # 相当于 c = c - a
    c *= a          # 相当于 c = c * a
    c /= a          # 相当于 c = c / a
    c %= a          # 相当于 c = c % a
    c **= a         # 相当于 c = c ** a
    c //= a         # 相当于 c = c // a

逻辑运算符

  • Python中逻辑运算符包含:and,or,not
  • and: 布尔"与"; x and y 表示如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值;
    a = 10
    b = 20
    print( a and b )        # 输出:20
  • or: 布尔"或"; x or y 表示 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值;
    a = 10
    b = 20
    print( a or b )         # 输出:10
  • not: 布尔"非"; not x 表示如果 x 为 True,返回 False 。如果 x 为 False,它返回 True;
    a = 10
    b = 20
    print(not(a==10))       # 输出:False
    print(not(b==10))       # 输出:True

位运算符

  • Python中位运算符包含:&,|,^,~,<<,>>;按位运算符是把数字看作二进制来进行计算的;
  • & (按位与运算符):参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0;
    a = 0b0011 1100
    b = 0b0000 1101
    a & b = 0000 1100
  • | (按位或运算符):只要对应的二个二进位有一个为1时,结果位就为1;
    a = 0b0011 1100
    b = 0b0000 1101
    a | b = 0011 1101
  • ^ (按位异或运算符):当两对应的二进位相异时,结果为1;
    a = 0b0011 1100
    b = 0b0000 1101
    a ^ b = 0011 0001
  • ~ (按位取反运算符):对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1;
    a = 0b0011 1100
    ~a = 1100 0011
  • << (左移动运算符):运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0;
    a = 0b0011 1100
    a << 2  # a 左移两位,即结果:1111 0000
  • “>>” (右移动运算符):把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数;
    a = 0b0011 1100
    a >> 2  # a 右移两位,即结果:0000 1111

    成员运算符

  • Python中成员运算符包含:in,not in;
  • in:如果在指定的序列中找到值返回 True,否则返回 False;
    a = 10
    list = [1, 2, 3, 4, 5 ];
    if ( a in list ):
    print ("变量 a 在列表中 list 中")
    else:
    print("变量 a 不在列表 list 中")
  • not in:如果在指定的序列中没有找到值返回 True,否则返回 False;
    a = 10
    list = [1, 2, 3, 4, 5 ];
    if ( a not in list ):
    print ("变量 a 不在列表中 list 中")
    else:
    print("变量 a 在列表 list 中")

    身份运算符

  • Python中身份运算符包含:is,is not;身份运算符用于比较两个对象的存储单元
  • is 判断两个标识符是不是引用自一个对象,x is y, 类似 id(x) == id(y);
    a = 20
    b = 20
    if ( a is b ):
    print (" a 和 b 有相同的标识")
    else:
    print (" a 和 b 没有相同的标识")
    if ( id(a) == id(b) ):
    print (" a 和 b 有相同的标识")
    else:
    print (" a 和 b 没有相同的标识")
    # 输出结果均为: a 和 b 有相同的标识
    # 修改 b 的值
    b = 30
    if ( a is b ):
    print (" a 和 b 有相同的标识")
    else:
    print (" a 和 b 没有相同的标识")
    # 输出结果: a 和 b 没有相同的标识
  • is not 判断两个标识符是不是引用自不同对象,x is not y , 类似 id(a) != id(b)
    a = 20
    b = 30
    if ( a is not b ):
    print (" a 和 b 没有相同的标识")
    else:
    print (" a 和 b 有相同的标识")
    if ( id(a) != id(b) ):
    print (" a 和 b 没有相同的标识")
    else:
    print (" a 和 b 有相同的标识")
    # 输出结果均为: a 和 b 没有相同的标识
    # 修改 b 的值
    b = 20
    if ( a is not b ):
    print (" a 和 b 没有相同的标识")
    else:
    print (" a 和 b 有相同的标识")
    # 输出结果: a 和 b 有相同的标识

运算符优先级

  • 运算符优先级从高到底如下:
**          指数 (最高优先级)
~ + -       按位翻转, 一元加号和减号 (最后两个的方法名为 [email protected] 和 [email protected])
* / % //    乘,除,取模和取整除
+ -         加法减法
>> <<       右移,左移运算符
&           位 ‘AND‘
^ |         位运算符
<= < > >=   比较运算符
<> == !=    等于运算符
= %= /= //= -= += *= **=    赋值运算符
is is not                   身份运算符
in not in                   成员运算符
not or and                  逻辑运算符

原文地址:https://www.cnblogs.com/shen-hua/p/8408624.html

时间: 2024-08-30 11:09:04

2-Python3从入门到实战—基础之运算符的相关文章

3-Python3从入门到实战—基础之数据类型(数字-Number)

Python从入门到实战系列--目录 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) Number(数字) Python3 支持三种不同的数值类型: int(整型).float(浮点型).complex(复数): 整型(Int),是正或负整数,不带小数点,int没有限制大小,表示为长整型,在Python 3里,只有一种整数类型 int,没有 python2 中的 Long

7-Python3从入门到实战—基础之数据类型(字典-Dictionary)

Python从入门到实战系列--目录 字典的定义 字典是另一种可变容器模型,且可存储任意类型对象:使用键-值(key-value)存储,具有极快的查找速度: 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 语法格式:{ key1 : value1, key2 : value2, key3 : value3 ...} users={' 张三 ' : 18 , ' 李四 ' : 19 , ' 王五 ' : 20 , ' 赵六 '

10-Python3从入门到实战—基础之函数

Python从入门到实战系列--目录 函数的定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数的语法 def 函数名(参数列表): 函数体 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (); 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明. 函数内容以冒号起始,并且缩进. return [表达式] 结束函数,选择性地返回一个值给调用方.不带表达式的return相当于返

Extjs5.0从入门到实战开发信息管理系统(Extjs基础、Extjs5新特性、Spring、Spring mvc、Mybatis)视频教程

Extjs5.0从入门到实战开发信息管理系统(Extjs基础.Extjs5新特性.Spring.Spring mvc.Mybatis)视频教程下载   联系QQ:1026270010 Extjs作为一款优秀的JS前端开发框架以其良好的架构.丰富的UI组件库.完善的文档和社区支持等诸多优点拥有广泛的市场应用空间,开发人员无需过多的关注HTML.CSS甚至各种常用JS算法,只需把精力放在业务逻辑上,利用各种组件的相互组合调用便可轻松而高效的开发出系统的前端页面. Extjs5在之前版本的基础上又推出

Capabilities 入门教程:基础实战篇

该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 待续... 上篇文章介绍了 Linux capabilities 的诞生背景和基本原理,本文将会通过具体的示例来展示如何查看和设置文件的 capabilities. Linux 系统中主要提供了两种工具来管理 capabilities:libcap 和 libcap-ng.libcap 提供了 getcap 和 setcap 两个命令来分别查看和设置文件的

对比学习资料《深度学习入门:基于Python的理论与实现》+《深度学习原理与实践》+《深度学习理论与实战基础篇》电子资料

我认为<深度学习入门:基于Python的理论与实现>电子书代码基本原理,简洁清楚,所用数学基本就是大一水平,适合做第一本入门书. <深度学习入门:基于Python的理论与实现>书代码实现的神经网络全是用numpy,超级适合刚刚入门想了解神经网络,数学不好看公式看不懂的人,看完这本基本就懂深度学习是弄啥子了. 如果连这本都看不懂的话,可以去看<Python神经网络编程>.我个人认为这两本书是最简单直白的方式让人理解神经网络的了. <深度学习原理与实践>电子书代

《Docker技术入门与实战》pdf

下载地址:网盘下载 内容简介  · · · · · · [编辑推荐] <Docker技术入门与实战>是中国首部docker著作,一线Docker先驱实战经验结晶,来自IBM和新浪等多位技术专家联袂推荐! <Docker技术入门与实战>结合企业生产环境,深入浅出地剖析 Docker 的核心概念.应用技巧.实现原理以及生态环境,为解决各类问题提供了有价值的参考. [内容简介] 在云计算时代,开发者将应用转移到云上已经解决了硬件管理的问题,然而软件配置和管理相关的问题依然存在.Docke

J2EE开发实战基础系列之开卷有益

时隔七年再次接触培训有关的事情,是兴奋,更多的是恐惧,不知该如何下手. 本系列针对有Java语法基础的开发者或者爱好者,从工作开发角度出发讲解,不同于其他视频,一切皆以实用为主,过程中如有疑问,请提问于我,回答将发布在教程中添加提问部分,提问者越多,教程覆盖越全面,以实际问题为主. ----------------------------------------------------------------------------------------- 首先介绍下目前J2EE方面培训的入门

docker-9 supervisord 参考docker从入门到实战

参考docker从入门到实战 使用 Supervisor 来管理进程 Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务.但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令放到一个启动脚本里面,启动的时候直接启动这个脚本,另外就是安装进程管理工具. 本小节将使用进程管理工具 supervisor 来管理容器中的多个进程.使用 Supervisor 可以更好的控制.管理.重启我们希望运行的进程.在这里我们演示