一 运算符

算数运算:

5的结果是 python中4 python中5>>2结果_按位与

比较运算:

5的结果是 python中4 python中5>>2结果_寻址_02

赋值运算:

5的结果是 python中4 python中5>>2结果_5的结果是 python中4_03

逻辑运算:

5的结果是 python中4 python中5>>2结果_5的结果是 python中4_04

成员运算:

 

5的结果是 python中4 python中5>>2结果_按位与_05

身份运算: 面向对象讲解

5的结果是 python中4 python中5>>2结果_寻址_06

 

运算符

名称

说明

例子

+

两个对象相加

3 + 5得到8。'a' + 'b'得到'ab'。

-

得到负数或是一个数减去另一个数

-5.2得到一个负数。50 - 24得到26。

*

两个数相乘或是返回一个被重复若干次的字符串

2 * 3得到6。'la' * 3得到'lalala'。

**

返回x的y次幂

3 ** 4得到81(即3 * 3 * 3 * 3)

/

x除以y

4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333

//

取整除

返回商的整数部分

4 // 3.0得到1.0

%

取模

返回除法的余数

8%3得到2。-25.5%2.25得到1.5

<<

左移

把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1)

2 << 2得到8。——2按比特表示为10

>>

右移

把一个数的比特向右移一定数目

11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。

&

按位与

数的按位与

5 & 3得到1。

|

按位或

数的按位或

5 | 3得到7。

^

按位异或

数的按位异或

5 ^ 3得到6

~

按位翻转

x的按位翻转是-(x+1)

~5得到-6。

<

小于

返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。

5 < 3返回0(即False)而3 < 5返回1(即True)。比较可以被任意连接:3 < 5 < 7返回True。

>

大于

返回x是否大于y

5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。

<=

小于等于

返回x是否小于等于y

x = 3; y = 6; x <= y返回True。

>=

大于等于

返回x是否大于等于y

x = 4; y = 3; x >= y返回True。

==

等于

比较对象是否相等

x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。

!=

不等于

比较两个对象是否不相等

x = 2; y = 3; x != y返回True。

not

布尔“非”

如果x为True,返回False。如果x为False,它返回True。

x = True; not x返回False。

and

布尔“与”

如果x为False,x and y返回False,否则它返回y的计算值。

x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。

or

布尔“或”

如果x是True,它返回True,否则它返回y的计算值。

x = True; y = False; x or y返回True。短路计算在这里也适用。

 

5的结果是 python中4 python中5>>2结果_寻址_07

5的结果是 python中4 python中5>>2结果_寻址_08

>>> 1 + 1
2
>>> 1 + 1 * 2
3
>>> (1 + 1 ) * 2       
4
>>> 0/32
0
>>> 32/0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
>>> 3*3
9
>>> 2**8
256
>>> 2**32
4294967296
>>> 2**64
18446744073709551616L
>>> 2**32/1024/1024
4096
>>> print "以上是32位系统的寻址空间"
以上是32位系统的寻址空间
>>> 2**64/1024/1024
17592186044416L
>>> print “虽然上面是64位系统的寻址空间,但是不一定就支持”
  File "<stdin>", line 1
    print “虽然上面是64位系统的寻址空间,但是不一定就支持”
          ^
SyntaxError: invalid syntax
>>> 2**42 /1024/1024
4194304
>>> 10%2
0
>>> 10%3
1
>>> print "作用是看一个数能不能被整成,过滤奇偶数"
作用是看一个数能不能被整成,过滤奇偶数

练习

 

大于 小于 左移右移 按位与 按位或

5的结果是 python中4 python中5>>2结果_5的结果是 python中4_09

>>> 3>2
True
>>> 3<2
False
>>> 3>=2
True
>>> 3!=2
True
>>> print "数字变成2进制"
数字变成2进制
>>> 5<<2
20
>>> 5>>2
1
>>> 5 | 3
7
>>> 5 & 3
1

5的结果是 python中4 python中5>>2结果_5的结果是 python中4_09

5的结果是 python中4 python中5>>2结果_寻址_11

5的结果是 python中4 python中5>>2结果_5的结果是 python中4_09

1 2 3 4  5  6  7  8
1 2 4 8 16 32 64 128
数组5转二进制 5=1+4
1 0 1   所以是5就是00000101
左移两位 5<<2
0 0 1 0 1 所以5<<2结果是20 即4+16=20
右移两位 5>>2
1          所以结果是1
按位与 5&3
5的二进制 101  3的二进制是110
1 0 1
1 1 0
得出结果 1 0 0 竖向看:1和1与是1,0和1与是0,1和0与是0,所以得出的结果是1
按位或 5|3
5的二进制 101  3的二进制是110
1 0 1
1 1 0
得出结果 1 1 1 竖向看:1和1或是1,0和1或是1,1和0或是1,所以得出的结果是1+2+4=7

5的结果是 python中4 python中5>>2结果_5的结果是 python中4_09