当前位置: 首页 > news >正文

抓狐狸python_Python运算符

运算符的优先级: +

和 -

优先级最低, *

, /

, //

, %

优先级较高,单目运算符 +

和 -

优先级更高,乘方的优先级最高

环境说明

环境:

python 2.7

centos 7.5

>>>print -2 * 4 + 3 ** 2

1

>>>

算数运算

+

运算符

描述

示例

+

两个对象相加

>>>print ‘abc’+’def’

abcdef

>>>print 123+234

357

>>>

-

两个对象相减

>>>print 123-456

-333

>>>

*

两个数相乘或返回一个重复若干次的序列

>>>print 123*456

56088

>>>print ‘abc’*2

abcabc

>>>

/

两个数相除

>>>print 2/3

0

>>>print 2/3.0

0.666666666667

>>>print 2.0/3

0.666666666667

>>>

//

整除,返回商的整数部分

>>>print 3//2

1

>>>print 3//2.0

1.0

>>>

%

求余/取模,返回除法的余数

>>>print 4%3

1

>>>print 4%3.0

1.0

>>>print 4%2.0

0.0

>>>print 4%2

0

>>>

**

求幂/次方

>>>print 2**3

8

>>>print 2**3.0

8.0

>>>

赋值运算

运算符

描述

实例

示例

=

简单赋值运算符

a = 5,b = 3,c = a - b

>>>a = 5

>>>b = 3

>>>c = a - b

>>>print ‘c的值为:’,c

c的值为:2

>>>

+=

加法赋值运算符

a+= b 相当于 a = a+b

>>>a = 5

>>>b = 3

>>>a+= b

>>>print ‘a的值为:’,a

a的值为:8

>>>

-=

减法赋值运算符

a -= b 相当于 a = a -b

>>>a = 5

>>>b = 3

>>>a -= b

>>>print ‘a的值为:’,a

a的值为:2

>>>

*=

乘法赋值运算符

a *= b 相当于 a = ab

>>>a = 5

>>>b = 3

>>>a *= b

>>>print ‘a的值为:’,a

a的值为:15

>>>

/=

除法赋值运算符

a /= b 相当于 a = a / b

>>>a = 5

>>>b = 3

>>>a /= b

>>>print ‘a的值为:’,a

a的值为:1

>>>

//=

取整除赋值运算符

a //= b 相当于 a = a // b

>>>a = 5

>>>b = 3

>>>a //= b

>>>print ‘a的值为:’,a

a的值为:1

>>>

%=

取模赋值运算符

a %= b 相当于 a = a % b

>>>a = 5

>>>b = 3

>>>a %= b

>>>print ‘a的值为:’,a

a的值为:2

>>>

**=

幂赋值运算符符

a **= b 相当于 a = a^b

>>>a = 5

>>>b = 3

>>>a **= b

>>>print ‘a的值为:’,a

a的值为:125

>>>

python 不支持C语言中的自增1和自减1运算符,因为 +

和 -

也是单目运算,python会将 --n

解释为 -(-n)

从而得到n,同样, ++n

的结果也是n。

比较运算

运算符

描述

示例

<

小于,比较运算符返回1表示真,返回0表示假。

这分别与特殊的变量True和False等价

>>>a=21

>>>b=10

>>>a>b

True

>>>

<=

小于或等于

>>>a=21

>>>b=31

>>>a<=b

True

>>>

>

大于

>>>a=21

>>>b=31

>>>a>b

False

>>>

>=

大于或等于

>>>a=31

>>>b=21

>>>a>=b

True

>>>

==

等于

>>>a=31

>>>b=21

>>>a==b

False

>>>

!=

不等于

>>>a=31

>>>b=21

>>>a!=b

True

>>>

is

判断两个标识符是否引用自一个对象

>>>x = [4,5,6]

>>>y = [7,8,9]

>>>x is y

False

>>>

is not

判断两个标识符是否引用自不同对象

>>>x = [4,5,6]

>>>y = [7,8,9]

>>>x is not y

True

>>>

逻辑运算

“真”值测试(Truth Value Testing)

Python中的任何一个对象都可以被测试“真”值。可以这样理解:Python中的任何一个对象都可以转换为一个布尔值,而这个“真”值测试就是获取一个对象对应的布尔值的过程。

Python中只有下面这些值对应的布尔值为False:

None

False

数字类型中的 0

,如: 0

, 0.0

, 0j

任意空序列,如: ''

, ()

, []

任意一个空映射,如: {}

一个用户自定义类的实例。该用户自定义类中定义了一个 __bool__()

或 __len__()

方法,且实例调用该方法时返回整数0或布尔值False

除此之外,所有的其它值对应的布尔值都是True, 因此许多类型的对象永远是True。”真”值测试可以被用在 if或while条件中,也可以作为布尔操作的操作数。

布尔运算(Boolean Operations)

Python中的逻辑运算称为“布尔运算(Boolean Operations)”,操作符包括:and(与)、or(或)、not(非)。

运算符

逻辑表达式

描述

示例

and

x and y

与运算,只有两个布尔值都为 True 时,计算结果才为 True

>>>x = True

>>>y = False

>>>x and y

False

>>>

or

x or y

或运算,只要有一个布尔值为 True,计算结果就是 True

>>>x = True

>>>y = False

>>>x or y

True

>>>

not

not x

非运算,把True变为False,或者把False变为True

>>>x = True

>>>not x

False

>>>

位运算

按位运算是指把数字转换为二进制来进行计算。

#左边为十进制,右边为二进制

60 ,0011 1100

13 ,0000 1101

运算符

描述

实例

示例

&

按位与,参与运算的两个值。

如果相应的二进制位都为1,则该位结果为1,否则为0

a&b对应的二进制结果为 0000 1100,十进制为12

>>>a=60

>>>b=13

>>>c=a & b

>>>print c

12

>>>

|

按位或运算符,

只要对应的二个二进位有一个为1时,结果位就为1

(a|b)输出结果61,

二进制解释: 0011 1101

>>>a=60

>>>b=13

>>>c=a|b

>>>print c

61

>>>

^

按位异或运算符,

当两对应的二进位相异时,结果为1

(a^b)输出结果49,

二进制解释: 0011 0001

>>>a=60

>>>b=13

>>>c=a^b

>>>print c

49

>>>

~

按位取反运算符,对数据的每个二进制位取反,

即把1变为0,把0变为1。~x 类似于-x-1

(~a)输出结果-61,

二进制解释:1100 0011,

在一个有符号二进制数的补码形式

>>>a=60

>>>b=~a

>>>print b

-61

>>>

<<

左移动运算符,运算数的各二进位全部左移若干位,

由 << 右边的数字指定了移动的位数,高位丢弃,低位补0

a << 2输出结果240,

二进制解释: 1111 0000

>>>a=60

>>>b=a<<2
>>>print b

240

>>>

>>

右移动运算符,

把”>>”左边的运算数的各二进位全部右移若干位,

>>右边的数字指定了移动的位数

a>>2输出结果15,

二进制解释:0000 1111

>>>a=60

>>>b=a>>2

>>>print b

15

>>>

Python成员运算符

运算符

描述

实例

in

如果在指定的序列中找到值返回 True,否则返回 False

x 在 y 序列中 , 如果 x 在 y 序列中返回 True

not in

如果在指定的序列中没有找到值返回 True,否则返回 False

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True

#!/usr/bin/python

#-*- coding: UTF-8 -*-

a=10

b=20

list=[1,2,3,4,5]

if a in list:

print '变量 a 在给定的列表中 list 中'

else:

print '变量 a 不在给定的列表中 list 中'

if b not in list:

print '变量 b 不在给定的列表中 list 中'

else:

print '变量 b 在给定的列表中 list 中'

# python in.py

变量 a 不在给定的列表中 list 中

变量 b 不在给定的列表中 list 中

#

Python运算符优先级

运算符

描述

**

指数(最高优先级)

~

, +

, -

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

*

, /

, %

, //

乘,除,取模和取整除

+

, -

加法减法

>>

, <<

右移,左移运算符

&

位’AND’

^

位运算符

<=

, <

, >

, >=

比较运算符

<>

, ==

, !=

等于运算符

=

, %=

, /=

, //=

, -=

, +=

, *=

, **=

赋值运算符

is is not

身份运算符

in not in

成员运算符

not and or

逻辑运算符

单目运算符

指运算所需变量为一个的运算符,又叫一元运算符,其中有:

逻辑非运算符: !

按位取反运算符: ~

自增自减运算符: ++

, –

负号运算符: -

类型转换运算符: (类型)

指针运算符和取地址运算符: *

, &

长度运算符: sizeof

双目运算符

指对两个变量进行操作

初等运算符 []

->

_

算术运算符 *

/

%

+

-

关系运算符 等于运算符: ==

不等于运算符: !=

关系运算符: <

, >

, <=

, >=

逻辑运算符 &&

||

!

位运算符 &

^

|

<<

>>

赋值运算符 简单赋值运算符: =

加法赋值运算符: +=

减法赋值运算符: -=

乘法赋值运算符: *=

除法赋值运算符: /=

取模赋值运算符: %=

左移动运算符: >>=

(对变量进行位运算移位之后的结果再赋值给原来的变量)

右移动运算符: <<=

(同上)

实现按位与运算符: &=

, a = iand(a, b) is equivalent to a &= b

参考

, 参考

实现按位或赋值运算符: |=

, a|=2等价于a=a|2()

; a = ior(a, b) is equivalent to a |= b

。参考同上

按位异或赋值运算符: ^=

; a = ixor(a, b) is equivalent to a ^= b

。参考同上

逗号运算符: ,

相关文章:

  • mysql数据库set names_MySQL数据库之mysql SET NAMES
  • python xls 合并为 cvs_使用python把csv汇总成excel
  • python 可迭代对象和迭代器区别_python生成器,可迭代对象,迭代器区别和联系...
  • java打印文件_java 循环打印文件夹文件
  • java sql系统_用Java实现数据库应用系统
  • jmeter的java请求参数设置_jmeter之 java请求
  • java如何设置系统属性_java – 设置系统属性
  • java ajax增删改查_使用AJAX实现数据的增删改查
  • java去掉结尾的空格_如何从Java中显示的字符串末尾删除空格?
  • java最大回文字符串长度_Leet Code 5 最长回文子串 - Java
  • java泡沫_Java初认识--函数和数组
  • java虚拟机内存溢出的三个原因_JVM发生内存溢出的原因分析及解决方案
  • mysql更新多个字段php_PHP:如果语句无意中导致多个MySQL列更新?
  • properties java jar_propertiesutil jar包
  • python段落注释的语法格式是_Python 基础语法
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 0基础学习移动端适配
  • 2017前端实习生面试总结
  • create-react-app做的留言板
  • MQ框架的比较
  • passportjs 源码分析
  • Promise面试题2实现异步串行执行
  • Python学习之路13-记分
  • ucore操作系统实验笔记 - 重新理解中断
  • vue总结
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 给github项目添加CI badge
  • 力扣(LeetCode)357
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 软件开发学习的5大技巧,你知道吗?
  • 使用Swoole加速Laravel(正式环境中)
  • 微信小程序--------语音识别(前端自己也能玩)
  • elasticsearch-head插件安装
  • kubernetes资源对象--ingress
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • #define、const、typedef的差别
  • #ifdef 的技巧用法
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (31)对象的克隆
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (转)关于多人操作数据的处理策略
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .NET Core 成都线下面基会拉开序幕
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net连接oracle数据库
  • .vue文件怎么使用_vue调试工具vue-devtools的安装