2.4 Python中的数据运算
Python中的数据运算与数学运算类似,数据运算也是有优先级的。Python支持以下常用的数据运算。
● 算术运算。
● 关系(比较)运算。
● 赋值运算。
● 逻辑运算。
例如,在表达式a+b=10中,a、b称为操作数,“+”符号称为运算符。Python中有多种运算符,包括算术运算符、关系运算符、赋值运算符、逻辑运算符。
2.4.1 算术运算符
算术运算就是数学运算,其运算规则与数学运算规则一样。算术运算符就是用于对操作数进行数学运算的运算符,主要有“+”“-”“*”“/”“%”“**”“//”等运算符,示例代码如下:
输出结果如下:
在上述代码中,首先定义变量a、b,分别将其赋值为数字3、2,然后进行数学运算。其中a%b计算的是a÷b的余数,a**b计算的是a的b次方,a//b计算的是a÷b的结果向下取整的整数。
2.4.2 关系运算符
关系运算又称为比较运算。关系运算符包括“==”“!=”“<”“>”“<=”“>=”等,主要用于对操作数进行大小比较。如果关系运算成立,则返回True(真),否则返回False(假)。示例代码如下:
输出结果如下:
在上述代码中,首先定义变量a、b、c,分别将其赋值为数字3、2、2,然后分别判断其大小关系,各运算符的比较方法与数学大小比较方法一致。在Python中,“==”运算符主要用于判断两个数是否相等,“!=”运算符主要用于判断两个数是否不相等。关系运算符也可以用于判断字符串、列表、字典、条件等的大小关系。
2.4.3 赋值运算符
赋值运算是将“=”运算符右边的值传递给“=”运算符左边的变量,可以直接传递,也可以先计算(如加、减、乘、除、函数调用、逻辑运算等)再传递。赋值运算符主要有“=”“+=”“-=”“*=”“/=”“%=”“**=”“//=”。示例代码如下:
输出结果如下:
在上述代码中,首先定义了两个变量a、b,并且分别将其赋值为数字3、2。除了常用的等号赋值,Python还提供了更便捷的赋值方法。例如,a+=b表示先计算a+b,再将计算结果赋给a。
2.4.4 逻辑运算符
Python中的逻辑运算与数学中的逻辑运算类似。例如,如果a为真,b为假,那么“非a”为假,“a且b”为假,“a或b”为真。Python中的逻辑运算符有and、or、not。
and运算符又称为“与”运算符。假设有两个操作数x、y(x、y可以是表达式,也可以是数值),那么x and y就是一个“与”逻辑表达式。如果x为False,那么x and y返回False;如果x为True,那么x and y返回y的值。示例代码如下:
输出结果如下:
or运算符又称为“或”运算符。假设有两个操作数x、y(x、y可以是表达式,也可以是数值),那么x or y是一个“或”逻辑表达式。如果x为True,那么x or y返回x的值;如果x为False,那么x or y返回y的值。示例代码如下:
输出结果如下:
not运算符又称为“非”运算符。假设有一个操作数x(x可以是表达式,也可以是数值),那么not x是一个“非”逻辑表达式。如果x为True,那么not x返回False;如果x为False,那么not x返回True。示例代码如下:
输出结果如下:
在Python中,in和not in是逻辑判断的另一种方式。in运算符主要用于判断其左边的内容是否存在于其右边的内容中,如果存在,则返回True;如果不存在,则返回False。not in运算符主要用于判断其左边的内容是否不存在于其右边的内容中,如果不存在,则返回True;如果存在,则返回False。示例代码如下:
输出结果如下:
也可以将in理解为是否包含。例如,在上述代码中,'a'in a表示判断变量a是否包含字符'a'。in不但可以用在字符串中,还可以用在列表和字典中。需要注意的是,如果将in用在字典中,则只会判断字典中是否有这个键名。
2.4.5 运算符优先级
Python运算符的优先级是一个很重要的概念,如表2.1所示。在一个表达式中有多个运算符时,运算符优先级决定了先执行哪个运算符。
表2.1 Python运算符的优先级
表2.1从高到低列出了运算符的优先级。先执行具有较高优先级的运算,再执行具有较低优先级的运算。可以使用圆括号改变默认的运算顺序。例如,在表达式11+2-5*(3+2-(5+1))中,圆括号内的5+1最先计算。