• 技术文章 >Python技术 >Python基础教程

    Python运算符优先级

    silencementsilencement2019-07-03 13:31:26原创4392

    所有的数学运算都是从左向右进行的,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 not6
    in运算符in、not in5
    逻辑非not4
    逻辑与and3
    逻辑或or2

    根据表中运算符的优先级,我们分析 4+4<<2 语句的执行结果。程序先执行 4+4 得到结果 8,再执行 8<<2 得到 32。如果使用“()”就可以改变程序的执行顺序,比如 4+(4<<2),则先执行 4<<2 得到结果16,再执行 4+16 得到 20。

    虽然 Python 运算符存在优先级的关系,但并不推荐过度依赖运算符的优先级,因为这会导致程序的可读性降低。因此,在这里要提醒读者:

    不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。

    不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用“()”来控制表达式的执行顺序。

    专题推荐:运算符优先级
    上一篇:python安装MongoDB 下一篇:Python如何把类当做字典来访问

    相关文章推荐

    • Python如何使用数据库的连接池• python抽象基类之_subclasshook_方法• Python中如何使用_new_实现单例模式

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网