![代替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=1739278603-Of3vTU7wUPvfJD20j9IkIYvsMjGhWAaf-0-66780105bbc4cb657d40b6796b99595d)
“+”用于字符串、列表等时起连接的作用。例如:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/060-2.jpg?sign=1739278603-kA5enDAYlAzg9IXG8WZlgNE7de7lJRhz-0-a0cbc7d65cdbd6a0b14bb82cf8c2defa)
“*”乘号用于字符串、列表等时起重复扩展的作用。例如:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/060-3.jpg?sign=1739278603-sW28jjVIWY61UVvGvlVQygbEdwg94OvF-0-02a830cd16e55be859e25b8ac87e4ad7)
1.10.2 关系运算符
关系运算符连接两个变量,构成关系运算表达式。当关系运算表达式成立时,返回True,否则返回False。常见的关系运算符如表1-13所示。表中还列出了各关系运算符的应用示例。
表1-13 关系运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/060-4.jpg?sign=1739278603-XtBmIEFadJobr6eqKmd9DmGL8MgI4NPJ-0-e2ee2a4fea007b2f289df9c6d5f300ef)
注意:在对两个以上的变量进行关系运算时,可以用一个表达式进行描述。例如:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/061-2.jpg?sign=1739278603-9KxN6QBiFJpIyKnYpubCcyJhgRfGIJtB-0-ba673473e4e2b6f2a5face6f028ca094)
也可以对字符串、列表等进行关系运算,此时对参与运算的变量的值逐字符或逐元素进行比较,取第1次不同时的比较结果。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/061-3.jpg?sign=1739278603-s4E6w8ekmL1GGkefQ6CFbdw9BSJqRafS-0-36ad828a69be620466c694a9489018f4)
1.10.3 逻辑运算符
逻辑运算符连接一个或两个变量,构成逻辑运算表达式。常见的逻辑运算符如表1-14所示。其中还列出了说明和应用示例。
表1-14 逻辑运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/061-4.jpg?sign=1739278603-QGyg2OFaVuEfjQIt63n2re4MPrVfxY5r-0-a7086e30710b00de3436d11dfa7c77b3)
1.10.4 赋值/成员/身份运算符
在前面各节介绍变量、字符串、列表等内容时,多次用到了赋值运算符和成员运算符。常见的赋值运算符如表1-15所示。其中还列出了说明和应用示例。
表1-15 赋值运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/062-1.jpg?sign=1739278603-F2xDT1YrZfuThIEwqph0Tns6RBpx9xeL-0-624bde93f098b43feab01a39c79873e4)
成员运算符用于判断所提供的值是否在或不在指定的序列中,如果是则返回True,否则返回False。常见的成员运算符有in和 not in,如表1-16所示。其中还列出了说明和应用示例。
表1-16 成员运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/062-2.jpg?sign=1739278603-qKtXbEhWUC7qM4cgpyCkOUe2Iie6IVLA-0-4f874afa042ac59c7054ca3faecbcecd)
身份运算符用于比较对象的地址,判断两个变量是否引用同一个对象或不同的对象。如果是则返回True,否则返回False。常见的身份运算符有is和is not,如表1-17所示。其中还列出了说明和应用示例。
表1-17 身份运算符
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/062-3.jpg?sign=1739278603-NGQRYtzSp8NmBgh3oTgXlbi5qW8ye2uH-0-5d69743cc703169ee2029b15a6947780)
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=1739278603-ztbh6Lwke0PjO6Te5waNnqaLketTyVv0-0-319c4d28c47bb855b9c243565891add3)
下面举几个例子来说明运算符优先级的应用。
对于下面四则运算的算术运算表达式,先算乘除法,后算加减法。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/063-2.jpg?sign=1739278603-GU8tvAHRyLt0lLf4ixylwVuwc9gW5Q0X-0-bed07273f2ebea8b864d432741ad6740)
因为除法运算返回的结果是浮点型的,所以最后得到的结果也是浮点型的。如果希望先算1+2,将它们的和再乘以3,则可以用圆括号改变加法运算的优先级。如果圆括号有嵌套,则先算里面的。例如:
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/063-3.jpg?sign=1739278603-xfTmmJX7vrpRF8kxijA4J6TMIs1XsVaf-0-cd13822c3b875e8523face4c16c50c49)
下面的表达式中有关系运算和逻辑运算,先进行关系运算,再进行逻辑运算。
![](https://epubservercos.yuewen.com/10B311/23020647701664206/epubprivate/OEBPS/Images/064-1.jpg?sign=1739278603-kbHaqTuivCIhgDghzUvFG0iHa0e2zQFJ-0-fad6459b7b58fd048cb84af09189c65d)
在表达式中,关系运算表达式3>2返回True,关系运算表达式7<5返回False,最后计算逻辑运算表达式True and False,返回False。