Python运算子

1、Python 运算符

运算符用于对变量和值执行操作。

Python将运算符分为以下几类:算术运算符

赋值运算符

比较运算符

逻辑运算符

身份运算符

成员运算符

按位运算符

2、Python 算术运算符

算术运算符与数值一起使用以执行常见的数学运算:运算符描述示例

+加 : 两个对象相加x + y

-减 : 得到负数或是一个数减去另一个数x - y

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

/除 : x除以yx / y

%取模 : 返回除法的余数x%y

**幂 : 返回x的y次幂x ** y

//取整除 : 返回商的整数部分(向下取整)x // y

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
c = a + b
print c
c = a - b
print c
c = a * b
print c
c = a / b
print c
c = a % b
print c
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b
print c
a = 10
b = 5
c = a//b
print c

注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。

>>> 1/2
0
>>> 1.0/2
0.5
>>> 1/float(2)
0.5

3、Python 赋值运算符

赋值运算符用于为变量赋值:运算符示例另一种写法

=x = 5x = 5
+=x += 3x = x + 3
-=x -= 3x = x - 3
*=x *= 3x = x * 3
/=x /= 3x = x / 3
%=x%= 3x = x % 3
//=x // = 3x = x // 3
**=x **= 3x = x ** 3
&=x &= 3x = x & 3
|=x |= 3x = x | 3
^=x ^= 3x = x ^ 3
>>=x >>= 3x = x >> 3
<<=x <<= 3x = x << 3

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
c = a + b
print c
c += a
print c
c *= a
print c
c /= a
print c
c = 2
c %= a
print c
c **= a
print c
c //= a
print c

4、Python 比较运算符

比较运算符用于比较两个值:运算符描述示例

==等于 : 比较对象是否相等x == y

!=不等于 : 比较两个对象是否不相等x!= y

>大于 : 返回x是否大于yx> y

返回0表示假。这分别与特殊的变量True和False等价。x < y

>=大于等于 : 返回x是否大于等于y。x> = y

<=小于等于 : 返回x是否小于等于y。x <= y

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
if a == b :
print "a 等于 b"
else:
print "a 不等于 b"
if a != b :
print "a 不等于 b"
else:
print "a 等于 b"
if a <> b :
print "a 不等于 b"
else:
print "a 等于 b"
if a < b :
print "a 小于 b"
else:
print "a 大于等于 b"
if a > b :
print "a 大于 b"
else:
print "a 小于等于 b"
# 修改变量 a 和 b 的值
a = 5
b = 20
if a <= b :
print "a 小于等于 b"
else:
print "a 大于 b"
if b >= a :
print "b 大于等于 a"
else:
print "b 小于 a"

5、Python 逻辑运算符

逻辑运算符用于组合条件语句:运算符描述示例

and如果两个语句都为true,则返回Truex <5 and x <10

or如果其中一个语句为true,则返回Truex <5 or x <4

not反转结果,如果结果为true,则返回Falsenot(x <5 and x <10)

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 10
b = 20
if a and b :
print "变量 a 和 b 都为 true"
else:
print "变量 a 和 b 有一个不为 true"
if a or b :
print "变量 a 和 b 都为 true,或其中一个变量为 true"
else:
print "变量 a 和 b 都不为 true"
# 修改变量 a 的值
a = 0
if a and b :
print "变量 a 和 b 都为 true"
else:
print "变量 a 和 b 有一个不为 true"
if a or b :
print "变量 a 和 b 都为 true,或其中一个变量为 true"
else:
print "变量 a 和 b 都不为 true"
if not( a and b ):
print "变量 a 和 b 都为 false,或其中一个变量为 false"
else:
print "变量 a 和 b 都为 true"

6、Python 身份运算符

恒等运算符用于比较对象,不是相等的对象,而是如果它们实际上是相同的对象,并且具有相同的内存位置:运算符描述示例

is如果两个变量都是同一个对象,则返回Truex is y

is not如果两个变量都不是同一对象,则返回Truex is not y

is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True

7、Python 成员运算符

成员运算符用于测试对象中是否存在序列:运算符描述示例

in如果对象中存在具有指定值的序列,则返回Truey in x

not in如果对象中不存在具有指定值的序列,则返回Truex not in y#!/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 中"

# 修改变量 a 的值

a = 2

if ( a in list ):

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

else:

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

8、Python 按位运算符

按位运算符用于比较(二进制)数字:运算符名称描述

&按位与运算符(AND)如果两个位均为1,则将每个位设置为1

|按位或运算符(OR)如果两位之一为1,则将每个位设置为1

^按位异或运算符(XOR)如果两位中只有一位为1,则将每个位设置为1

~按位取反运算符(NOT)反转所有位

<

>>右移动运算符右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

例如:

a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
c = a | b; # 61 = 0011 1101
c = a ^ b; # 49 = 0011 0001
c = ~a; # -61 = 1100 0011
c = a << 2; # 240 = 1111 0000
c = a >> 2; # 15 = 0000 1111

9、Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:运算符描述

**指数 (最高优先级)

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

* / % //乘,除,取模和取整除

+ -加法减法

>> <

&位 'AND'

^ |位运算符

<= < > >=比较运算符

<> == !=等于运算符

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

is is not身份运算符

in not in成员运算符

not and or逻辑运算符