python学习之运算表达式优先级

python中,有变量、值和运算符参与的语句叫做表达式。

比如:

#字符串表达式
"hello"
#运算表达式
2+3
#赋值表达式
test  = "hello"
#变量表达式
test

运算符优先级

运算符 描述
lambda Lambda表达式
or 布尔“或”
and 布尔“与”
not x 布尔“非”
in,not in 成员测试
is,is not 同一性测试
<,<=,>,>=,!=,== 比较
| 按位或
^ 按位异或
& 按位与
<<,>> 移位
+,- 加法与减法
*,/,% 乘法、除法与取余
+x,-x 正负号
~x 按位翻转
** 指数
x.attribute 属性参考
x[index] 下标
x[index:index] 寻址段
f(arguments...) 函数调用
(experession,...) 绑定或元组显示
[expression,...] 列表显示
{key:datum,...} 字典显示
‘expression,...‘ 字符串转换

 关于移位操作

右移:右移一位表示除以2

>>> 8>>2
2
>>> 8>>3
1
>>> 8>>4
0

这里,移位数是>>右边的数,被移位数是>>左边的数。

左移:左移一位表示乘以2

>>> 3<<4
48

这里,移位数是<<右边的数,被移位数是<<左边的数。

总结:移位数总是位于移位符号(<<或者>>)的右边被移位数总是位于移位符号的左边

优先级

运算符优先级按照上表由低到高

其他优先级如下:

#以下优先级排名从高到低,在同一运算中,先执行优先级高的再执行低的,以此类推。

#Top 1:函数调用、寻址、下标

#Top 2:幂运算**
priorityNumber=2*2**3
print priorityNumber #输出结果:16

#Top 3:翻转运算~

#Top 4:正负号
print 1+2*-3 #输出结果:-5

#Top 5:*、/、%
print 2+1*2/5 #输出结果:2

#Top 6:+、-
print 3<<2+1 #输出结果:24

#Top 7:<<、>>

#Top 8:按位&、^、|

#Top 9:比较运算符
priority=2*3+2<=2+1*7
print priority #输出结果:True

#Top 10:逻辑的not and or

#Top 11:lambda表达式

一般操作,由左到右;赋值操作,由右到左

>>> a = 1+3
>>> a
4

括号优先操作

>>> b = (1+2)*3
>>> b
9
时间: 2024-08-29 15:56:05

python学习之运算表达式优先级的相关文章

python学习之Lambda表达式

"Lambda 表达式"(lambda expression)是一个匿名函数,即没有函数名的函数.Lambda表达式可以表示闭包(注意和数学传统意义上的不同). 1.python中的lambda表达式 Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数.与其它语言不同,Python的Lambda表达式的函数体只能有唯一的一条语句,也就是返回值表达式语句.其语法如下: lambda 形参列表 : 函数返回值表达式语句 下面是个Lambda表达式的例子:

Python学习 之 运算符&amp;表达式

1.Python运算符包括:赋值运算符.算术运算符.关系运算符.逻辑运算符. 表达式是将不同的数据(包括变量.函数)用运算符号按一定规则连接起来的一种式子. 2.赋值运算符:=.+=.-=.*=./=.%= 算术运算符:+.-.*././/(整数除法).%.**(求幂运算) 关系运算符:<.>.<=.>=.!=.== 逻辑运算符:and.or.not 3.运算符的由低到高的优先级如下: 4.raw_input():可以从键盘获取输入的字符 int(raw_input()):把键盘的

python学习2 lambda表达式

学习C#的,对这个就特别熟悉了 lambda函数,它没有名字,只有参数和表达式: lambda  args: expression def func1(func,arg): return func(arg) print func1(lambda a:'hello '+a, 'aven') input() 和.Net相比,这个lambda只支持表达式(expression)而不支持语句块(statement)

python学习之-三元表达式

三元表达式 格式:x if x>y else y 有哪三元 1:条件算一元 2:条件成立的表达式算一元 3:条件不成立的表达式算一元 def max2(x,y): if x > y: return x else: return y res=max2(1,2)print(res) PS:为了比大写了7行代码,如果用三元表达式可以只用一行代码 三元表达式 res=x if x > y else y  #判断成立返回值放左边,不成立的返回值放右边print(res)  #表达式有一个返回值,需

python学习心得——运算

1.加减法运算.使用+.-,和平时一样,如: 2.乘号使用 * 号,除号使用 / 号,如: 3.乘方使用两个 * ,如: 原文地址:https://www.cnblogs.com/zxc01/p/12604630.html

python中的lambda表达式与三元运算

1 >>> def add(x,y): #定义一个加法函数 2 return x+y #返回两个参数的相加的值 3 4 >>> z=f(3,4) 5 >>> print(z) 6 7 #调用加法函数返回7 7 >>> lambda x,y:x+y 8 <function <lambda> at 0x0000020F385B86A8> 9 #可以看到lambda是一个 function(函数)类对象 10 >

三目运算的优先级(?表达式)

今天写一个iOS的插件,高度总是出问题,检查语句感觉没有什么问题. ? 1 CGFloat height = [Adaptation4iOS iPhoneScreenContent].height- [SystemUtils isIos7]?20:0- _realSearchBar.frame.size.height; 但是返回的高度总不是计算所需要的高度举个明确的例子 ? 1 2 3 4 5 6 7 BOOL isThree = YES;  CGFloat height = 100 - isT

Python学习_列表解析和Lambda表达式

1.根据要求创建列表threes_and_fives(列表值包括1到15中能够被3或者5正常的数) threes_and_fives=[x for x in range(1,16) if x%3==0 or x%5==0] 2.lambda表达式实例(剔除掉列表中的"X") garbled = "IXXX aXXmX aXXXnXoXXXXXtXhXeXXXXrX sXXXXeXcXXXrXeXt mXXeXsXXXsXaXXXXXXgXeX!XX" message

Java学习:运算、运算符、操作数、表达式

运算:对常量和变量进行操作的过程称为运算. 操作数:参与运算的常量或者变量称为操作数. 运算符:对常量和变量进行操作的符号称为运算符. 算术运算符:+.-.*./.%.++.-- /和%的区别? /:除法,得到商 符号相同为正,不同为负 %:除法,得到余数 符号和第一个操作数相同 %的应用: x%3 等于 0 说明x能被3整除 x%2 等1 说明x是奇数  等0 说明x是偶数 ++,--运算符 作用:++就是加1,--就是减1. 自增自减运算符 ++,--在运算的时候,可以放在操作数的前面,也可