写给小白的Python之007:运算符

2018-06-18 02:14:17来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

导读:

1.算数运算符

2.赋值运算符

3.关系运算符

4.逻辑运算符

5.成员运算符

6.身份运算符和isinstance( )

7.位运算符

8.运算符优先级

9.表达式

 

python支持以下几种运算符。

一、算数运算符

1. 双斜杠 // 除法总是向下取整。

2. 从浮点数到整数的转换可能会舍入也可能截断,建议使用math.floor()math.ceil()明确定义的转换。

3. Python定义pow(0, 0)和0 ** 0等于1。

>>> 9/2.0
4.5

>>> 9//2.0
4.0

>>>-7 // 3  # 地板除
-3

 

二、赋值运算符

赋值运算符

 

复合赋值运算符

 

>>> a, b = 1, 2

>>> a
1

>>> b
2

 

三、关系运算符

python中的关系(比较)运算符如下表:

 

1. 八个比较运算符优先级相同。

2. Python允许 x < y <= z 这样的链式比较,它相当于 x < y and y <= z 。

3. 复数不能进行大小比较,只能比较是否相等。

>>> 'abc'<'abd'
True

>>> [1,2,3]<[2,3,4]
True

>>> (1,2,3)<(1,3,2)
True


a = 10
1<a<20  # True
11<a<20  # False

 

四、逻辑运算符

python中的逻辑运算符如下表:

1. and 也是个短路运算符,它只有在第一个运算数为True时才会计算第二个运算数的值。

2. or 是个短路运算符,它只有在第一个运算数为False时才会计算第二个运算数的值。1. and 也是个短路运算符,它只有在第一个运算数为True时才会计算第二个运算数的值。

3. not 的优先级比其他类型的运算符低,所以 not a == b 相当于 not (a == b) ,而 a == not b 错误的。

>>> 1 and 2
2

>>> 1 and 0
0

>>> 0 and 1
0

>>> 0 or 1
1

>>> 1 or 0
1

>>> 1 or 2
1

>>> 2 or 1
2
 

>>> not ''
>>> not 0
>>> not []
>>> not ()
>>> not {}
>>> not set()
都返回  True。

 

五、成员运算符

Python提供了成员运算符,测试一个元素是否在一个序列(Sequence)中。

注意:
在对 字典 操作时,判断的是 字典的键。

 

六、身份运算符

如果两个变量取值相等,则 is返回 True。

>>> a = 'hello'
>>> b = 'world'

>>> a is b
False

>>> c = 'hello'
>>> a is c
True

>>> a = 1
>>> b = 2
>>> a is b
False

is 不是比较值相等。is比较的是两个变量的身份是否相等。

==是比较值是否相等。

>>> a=1
>>> b=2
>>> a==b
False

>>> a=1
>>> b=1
>>> a is b
True

>>> a=1
>>> b=1.0
>>> a==b
True

>>> a is b
False

>>> id(a)
1775594976
>>> id(b)
2079163814176

>>> a={1,2,3}

>>> b={2,1,3}

>>> a==b

True

>>> a is b

False

>>> id(a)

2079194213736

>>> id(b)

2079194214184

 

>>> c=(1,2,3)

>>> d=(2,1,3)

>>> c==d

False

>>> c is d

False

>>> id(c)

2079194209736

>>> id(d)

2079194209880

 

扩展:isinstance( )

>>> a='hello'
>>> type(a) == int
False

>>> type(a) == str
True      Py2.x中为False

>>> isinstance(a,str)
True      Py2.x中不支持

>>> isinstance(a,int)
False

>>> isinstance(a,(int,str,float))
True

>>> isinstance(a,(int,float))
False

对象的三个特征:id、value、type。

 

七、位运算符

 把数字当做二进制数进行运算

x | y——1 1得1,1 0得1,0 0得0x & y——1 1得1,1 0得0,0 0得0

x^y——1 1得0,1 0得1,0 0得 0

>>> 2 & 3
2

>>> 2 | 3
3

>>> 2 ^ 3
1

>>> 2 << 2
8

>>> 2 >> 2
0

>>> 2 >> 3
0

>>> ~ 2
-3

 

八、运算符优先级

优先级由高到最低顺序排列 :

**幂 (最高优先级)

* / % //乘、除、取余数、取整除

+ -加法、减法

<= < > >=比较运算符

== !=等于运算符

= %= /= //= -= += *= **=赋值运算符

is  is not 身份运算符

in not in 成员运算符

not > and > or逻辑运算符 

 

>>> b = 1
>>> b += b>=1    等价于b = b + (b>=1)
>>> print(b)
2
 
>>>a or b and c 等价于
>>>a or (b and c)

>>> a=1
>>> b=2
>>> c=2
>>> not a  or b + 2 == c
False

>>> not a  or ((b + 2) == c)
False

>>> (not a) or ((b + 2) == c)
False

九、表达式

表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python 函数的作用域

下一篇:pycharm下 os.system执行命令返回有中文乱码