运算符指示要对表达式的其他部分执行哪些运算(例如,加减运算)。
根据要对其执行运算的数据类型不同,某些运算符具有不同的含义。例如,加号 (+) 可能表示整数之间相加,也可能表示字符串之间进行并置。在复杂的表达式中,将按照运算符的优先顺序进行求值。
下表列示了每个运算符的含义。这些运算符是按优先顺序列示的。
运算符(按优先顺序列示) | 含义 | 用法 | |
---|---|---|---|
圆括号 | ( ) | 按逻辑将表达式分组。 | (<expr>) |
算术运算符 | + - | 一元加号和减号。一元减号会更改数目的符号;一元加号则不会更改。 | +<expr>-<expr> |
* / | 乘法和除法。当两个整数相除时,将返回一个整数(如果结果为浮点值,那么会将此值截断以生成整数)。 | <expr>*<expr><expr>/<expr> | |
+ - | 加减数字值。如果是减号,那么还会减去两个时间之间相差的秒数。 | <expr>+<expr><expr>-<expr> | |
字符串并置运算符 | + | 对字符串进行并置。 | <expr>+<expr> |
比较运算符(全部都具有相同级别的优先顺序) |
|
|
|
逻辑运算符 | not | 当布尔表达式为 false 时,将求值为 true;当布尔表达式为 true 时,将求值为 false。 | not <expr> |
and | 当两个表达式都为 true 时,才会求值为 true。 | <expr> and <expr> | |
or | 当任一表达式为 true 时,就会求值为 true。 | <expr> or <expr> | |
like | 当表达式与模式相匹配时,将求值为 true。模式中包含要搜索的字符串,字符串中可以包括通配符。 | like <expr> | |
is null is not null | 测试空值。空值表示缺少数据。 | is null is not null |
在表达式中,操作数和结果通常必须为同一数据类型,并且运算符必须对于该数据类型有效。请注意,允许在表达式中混合使用数字数据类型(即,float 和 integer)- 例如,下面所显示的表达式有效(FloatVal 是一个 float 类型的变量):
3 * 2.5
FloatVal > 2
在混合类型的表达式中,在执行运算之前,会将整数隐式转换为浮点值。
在一个表达式中,对于具有相同优先顺序的运算符,将按从左到右的顺序进行求值。例如,在下面所显示的整型表达式中,因为除法与乘法具有相同的优先顺序,6 除以 4,所以结果会被截断(因为除数和被除数都是整数)并乘以 2。
6/4*2 = 2
在具有许多混合优先顺序的运算符的表达式中,自由使用圆括号将使此表达式更容易理解和维护。例如,下面是同一表达式的两个版本;但是,在第二个版本中使用了圆括号,从而使得此表达式的逻辑更清晰。
Num + 2 > 80 or Num - 2 < -20
((Num + 2) > 80) or ((Num - 2) < -20)