![代替VBA!用Python轻松实现Excel编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/254/43738254/b_43738254.jpg)
1.10 表达式
前面详细介绍了变量,变量是计算机语言中最基本的语言元素。使用运算符连接一个或多个变量就构成了表达式,例如给变量赋值,a=1是赋值表达式;求子集的运算,{1,2,3} <= {1,2,5}是比较运算表达式。如果变量是单词,表达式就是词组和短语。根据运算符的不同,可以有不同类型的表达式。
1.10.1 算术运算符
算术运算符连接一个或两个变量,构成算术运算表达式。常见的算术运算符有+、-、*、/等,如表1-12所示。表中还列出了各算术运算符的应用示例。
表1-12 算术运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/060-1.jpg?sign=1738887325-MJU6divte92r5SpAIbUqWzUTcM7UjDHH-0-db38062f9b0781a78812d7c18881b730)
“+”用于字符串、列表等时起连接的作用。例如:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/060-2.jpg?sign=1738887325-ShzXPXiOTrQ9ZAHHqFzlZuRV5M1Ovl56-0-a6b8ee15035d129c792c1b7fc5481bdd)
“*”乘号用于字符串、列表等时起重复扩展的作用。例如:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/060-3.jpg?sign=1738887325-qRQWKM4k9m1eLAcTALup9akKn9fC2CBC-0-8b1b817bd1a3e1863aad1a6fcd000edf)
1.10.2 关系运算符
关系运算符连接两个变量,构成关系运算表达式。当关系运算表达式成立时,返回True,否则返回False。常见的关系运算符如表1-13所示。表中还列出了各关系运算符的应用示例。
表1-13 关系运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/060-4.jpg?sign=1738887325-ci9YqhxxxhGoorC52wf69bjZDVar2iM5-0-c727b063bb545e81ed930da70ebc33fd)
注意:在对两个以上的变量进行关系运算时,可以用一个表达式进行描述。例如:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/061-2.jpg?sign=1738887325-q5K5OU9gIGmlyIPfnWQupvqSaP86BNbf-0-e2f07ac3670cbe4c6593a2f6c7ff5465)
也可以对字符串、列表等进行关系运算,此时对参与运算的变量的值逐字符或逐元素进行比较,取第1次不同时的比较结果。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/061-3.jpg?sign=1738887325-uoqUSBPuml2ChdNVn3VLait70IPmDu5T-0-4039143797e73f3d4471da4a34a864da)
1.10.3 逻辑运算符
逻辑运算符连接一个或两个变量,构成逻辑运算表达式。常见的逻辑运算符如表1-14所示。其中还列出了说明和应用示例。
表1-14 逻辑运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/061-4.jpg?sign=1738887325-PtRnAzX8mbgyyalQJn2Ha404EjcC9o8a-0-84448eade45e79171e1aa56a22df25af)
1.10.4 赋值/成员/身份运算符
在前面各节介绍变量、字符串、列表等内容时,多次用到了赋值运算符和成员运算符。常见的赋值运算符如表1-15所示。其中还列出了说明和应用示例。
表1-15 赋值运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/062-1.jpg?sign=1738887325-hkR7tRS2b1tl03nPvzWf4PpOR0Yu4krF-0-250af6c5404e770fb30fc867281e7118)
成员运算符用于判断所提供的值是否在或不在指定的序列中,如果是则返回True,否则返回False。常见的成员运算符有in和 not in,如表1-16所示。其中还列出了说明和应用示例。
表1-16 成员运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/062-2.jpg?sign=1738887325-Shdd5y7lsve58rELYxoFTMG9QIo495DP-0-7d910963b74f0b5f59a7aa960652f749)
身份运算符用于比较对象的地址,判断两个变量是否引用同一个对象或不同的对象。如果是则返回True,否则返回False。常见的身份运算符有is和is not,如表1-17所示。其中还列出了说明和应用示例。
表1-17 身份运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/062-3.jpg?sign=1738887325-WuIHnE3xnpnIaq6n1wHJL3lW9B6hzXjk-0-b0e4bbe171dfbb89e22a99fb0cda9fa2)
1.10.5 运算符的优先级
前面介绍了算术运算符、关系运算符、逻辑运算符等各种运算符,如果一个表达式中有多种运算符,那么先算哪个后算哪个就要遵循一定的规则。这个规则就是先算优先级高的,后算优先级低的,如果各运算符的优先级相同,则按照从左到右的顺序计算。比如四则运算1+2*3-4/2,将加减法和乘除法放在一起进行计算,因为乘除法的优先级比加减法的优先级高,所以要先算乘除法,后算加减法。这是我们很熟悉的。表1-18中列出了各种主要的运算符及它们在表达式中的计算优先级。
表1-18 运算符的优先级
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/063-1.jpg?sign=1738887325-m9qbZumtx3Ffi6uDnDSlxP1Beuom4vrE-0-fe7e0d716104ce4b0599f22a3211957f)
下面举几个例子来说明运算符优先级的应用。
对于下面四则运算的算术运算表达式,先算乘除法,后算加减法。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/063-2.jpg?sign=1738887325-HbUYcn3qewj3iN7I7VziP68wyN21VaoC-0-f73ce471b9e0fd7960d2f69456b648e0)
因为除法运算返回的结果是浮点型的,所以最后得到的结果也是浮点型的。如果希望先算1+2,将它们的和再乘以3,则可以用圆括号改变加法运算的优先级。如果圆括号有嵌套,则先算里面的。例如:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/063-3.jpg?sign=1738887325-iZSQRiuNipNykgeDI2KjA3RPVzQlrmP5-0-bf241ff676118f6d691ff237e766dcd9)
下面的表达式中有关系运算和逻辑运算,先进行关系运算,再进行逻辑运算。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/064-1.jpg?sign=1738887325-rgVJEOT13h4SUeOjcbVhrrTxp2FmnVRf-0-38a4aecba02575559ce7e29c72b3589a)
在表达式中,关系运算表达式3>2返回True,关系运算表达式7<5返回False,最后计算逻辑运算表达式True and False,返回False。