抓狐狸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
。参考同上
逗号运算符: ,