所有的数学运算都是从左向右进行的,Python 语言中的大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,它们是从右向左结合的,也就是说,它们是从右向左运算的。
乘法和加法是两个可结合的运算符,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。
运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。下表中列出了包括分隔符在内的所有运算符的优先级顺序。
运算符说明 | Python运算符 | 优先级 | 索引运算符 | x[index]或x[index:index2[:index3]] | 18、19 | 属性访问 | x.attrbute | 17 | 乘方 | ** | 16 | 按位取反 | ~ | 15 | 符号运算符 | +或- | 14 | 乘、除 | *、/、//、% | 13 | 加、减 | +、- | 12 | 位移 | >>、<< | 11 | 按位与 | & | 10 | 按位异或 | ^ | 9 | 按位或 | | | 8 | 比较运算符 | ==、!=、>、>=、<、<= | 7 | is运算符 | is、is not | 6 | in运算符 | in、not in | 5 | 逻辑非 | not | 4 | 逻辑与 | and | 3 | 逻辑或 | or | 2 |
---|
根据表中运算符的优先级,我们分析 4+4<<2 语句的执行结果。程序先执行 4+4 得到结果 8,再执行 8<<2 得到 32。如果使用“()”就可以改变程序的执行顺序,比如 4+(4<<2),则先执行 4<<2 得到结果16,再执行 4+16 得到 20。
虽然 Python 运算符存在优先级的关系,但并不推荐过度依赖运算符的优先级,因为这会导致程序的可读性降低。因此,在这里要提醒读者:
不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。
不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用“()”来控制表达式的执行顺序。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!