您的位置:首页 > 其它

2.3.2运算符优先级

2016-01-28 19:36 141 查看
1、什么是Python的优先级
2、Python优先级使用实战

优先级的作用

Python中的程序或运算符的执行是有先后顺序的,比如A跟B同时出现,如果A可以优先于B执行,那么就说明A的优先级比B的优先级高,B的优先级比A的优先级低。其中,A跟B可以是运算符,也可以是程序。就是说,Python中的优先级分为两种,一种是程序之间的优先级,还有一种是运算符之间的优先级。

#-*-coding:utf-8-*-
__author__ = 'allen'
优先级使用实战

优先级排行榜第1名——函数调用、寻址、下标

优先级排行榜第2名——幂运算 **
a=4*2**3
print a

优先级排行榜第3名——翻转运算 ~#其实翻转和+、-平级,但是翻转必须写在数据前,只好想运算翻转
print ~18**2                  #等于-325,幂运算优先~(18**2)

优先级排行榜第4名——正负号
print 2+4*-2
print 4*-2**2           #幂运算优先>负号>乘法

优先级排行榜第5——'*''/''%'(取商的余数)、'//'(取商的整数)print 2+4*2/4

优先级排行榜第6名——'+''-'
print 3<<2+1

优先级排行榜第7名——'<<''>>'
print 18<<1     #18*2**n,n=1

优先级排行榜第8——按位与‘&’ > 按位异‘^’ > 按位或‘|’
例子:3|9^7&18
print(3|9^7&18)                 #11 (3|(9^(7&18))) 优先运算7&18=2 > 9^2=11 > 3|11=11
print(((3|9)^7)&18)             #0  3|9=11 > 11^7=12 > 12&18=0

优先级排行榜第9——比较运算符'<=','<','>','>='
a=2*3+5<=5+1*2
print a

优先级排行榜第10名——逻辑的'not''and''or'


此处还应有赋值标识符(= %= /= //= -= += *= **=;
标志标识符(is is not);
成员标识符(in not in);
详细查看《Python基本运算符》文档http://www.yiibai.com/python/python_basic_operators.html优先级排行榜第11名——lambda表达式
Lambda表达式的例子:
#!/usr/bin/envpython
li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]
li=sorted(li,key=lambda x:x["age"])
print(li)

如果不用Lambda表达式,而要写成常规的函数,那么需要这么写:
#!/usr/bin/envpython
def comp(x):
return x["age"]
li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]
li=sorted(li,key=comp)
print(li)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: