下载网站cms,建站公司 商城,wordpress插件太大,长沙网站建设接单说完常用的数据类型#xff0c;再来说下运算符。运算符用于将各种类型的数据进行运算#xff0c;让静态的数据跑起来。
编程语言中的运算大致分为以下几个大类#xff1a;
算术运算#xff0c; 用于加减乘除等数学运算
赋值运算#xff0c;用于接收运算符或方法调用返回的…说完常用的数据类型再来说下运算符。运算符用于将各种类型的数据进行运算让静态的数据跑起来。
编程语言中的运算大致分为以下几个大类
算术运算 用于加减乘除等数学运算
赋值运算用于接收运算符或方法调用返回的结果
比较运算, 用于做大小或等值比较运算
逻辑运算用于做 与、或、非运算
位运算 用于二进制运算
每种运算中所包含的符号称为相应的运算符如 算术运算符、比较运算符等。
一、算术运算
运算(符)
说明
实例两个对象相加
2 3 结果为 5
-
两个对象相减
3 - 2 结果为 1
*
两个数相乘或返回一个重复若干次的序列
2 * 3 结果为 6; abc * 2 结果为 abcabc
/
两个数相除
3 / 2 结果为 1.5
//
整除返回商的整数部分
3 // 2 结果为 13 // 2.0 结果为 1.0
%
求余/取模返回除法的余数
3 % 2 结果为 13 % 2.0 结果为 1.0
**
求幂/次方
2 ** 3 结果为 8
二、赋值运算
运算(符)
描述
实例简单赋值运算符
a 5, b 3, c a - b加法赋值运算符
a b 相当于 a a b
-
减法赋值运算符
a - b 相当于 a a -b
*
乘法赋值运算符
a * b 相当于 a a * b
/
除法赋值运算符
a / b 相当于 a a / b
//
取整除赋值运算符
a // b 相当于 a a // b
%
取模赋值运算符
a % b 相当于 a a % b
**
幂赋值运算符符
a ** b 相当于 a a ** b
三、比较运算
Python有8中比较操作它们具有相同的优先级。比较操作可以被任意连接比如 x y z 等同于 x y and y z只是第一种形式下的y只被评估一次。另外当 x y不成立时这两种形式下的z都不会被评估。
运算(符)
说明
实例严格小于
3 5 结果为True5 5 结果为False小于或等于
3 5 结果为True5 5 结果为True严格大于
5 3 结果为True5 5 结果为False大于或等于
5 3 结果为True5 5 结果为True等于
1 1.0 True 结果为True
!
不等于
is
判断两个标识符是否引用自一个对象
x is y, 如果id(x) id(y)即x也y的指向同一个内存地址则结果为1否则结果为0
is not
判断两个标识符是否引用自不同对象
x is not y, 如果id(x) ! id(y)即x和y指向不同的内存地址则结果为1否则结果为0
说明
a) 不同类型的对象进行比较从来不会相等不同的数字类型除外
b) 当把、、 和 操作符在这几种情况下会抛出TypeError异常: (1) 用于复数和另外的内置数字类型进行比较时(2) 比较的对象为不同类型无法进行比较时(3) 未定义的其他情况下
c) 一个类的不同实例通常是不相等的除非该类定义了__eq__()方法
d) 一个类的实例不能相对于同一类或其他类的的其他实例进行排序除非该类定义了足够的方法__lt__(), __le__(), __gt__(), __ge__()。如果想要比较运算符的常规含义, __lt__()和__eq__()就足够了
e) is 和 is not操作符的行为是不能自定义的另外它们可以被应用到两个不同类型的对象不会已发异常。
f) 另外两个具有相同句法优先级的操作是 in 和 not in它们支持序列、集合和映射类型的对象。
g) 比较运算的结果为布尔值True 或 False
四、逻辑运算
“真”值测试(Truth Value Testing)
在讲解“布尔运算”之前我们先来说下Python中的一个特殊操作--“真”值测试。
Python中的任何一个对象都可以被测试“真”值。这里说的“真”值测试可以这样理解Python中的任何一个对象都可以转换为一个布尔值而这个“真”值测试就是获取一个对象对应的布尔值的过程。
Python中只有下面这些值对应的布尔值为False
None
False
数字类型中的0如0, 0.0, 0j
任意空序列如, (), []
任意一个空映射如{}
一个用户自定义类的实例--该用户自定义类中定义了一个__bool__()或__len__()方法且实例调用该方法时返回整数0或布尔值False
除此之外所有的其它值对应的布尔值都是True, 因此许多类型的对象永远是True。
真值测试可以被用在 if或while条件中也可以作为布尔操作的操作数。
布尔运算(Boolean Operations)
Python中的逻辑运算称为“布尔运算(Boolean Operations)”操作符包括and(与)、or(或)、not(非)。
下面按照他们的优先级升序顺序进行说明
运算
结果
x or y
如果x的Truth值测试结果为False那么该操作的结果为y的值否则为x的值
x and y
如果x的Truth值测试结果为False, 那么该操作的结果为x的值否则为y的值
not x
如果x的Truth值测试结果为False, 那么该操作的结果为True否则结果为False
说明
aor是一个短路操作符也就是说只有第一个参数的评估结果为False时第二个参数才会被评估
b) and也是一个短路操作符也就是说只有第一个参数的评估结果为True时第二个参数才会被评估
c) not操作符比非布尔操作符优先级低因此not a b 被解释为 not (a b)如果写成 a not b会包语法错误。
五、位运算
按位运算是指把数字转换为二进制来进行计算位运算符包括以下几种
假设
a 60对应的二进制格式为 0011 1100
b 13, 对应的二进制格式为 0000 1101
运算符
说明
实例按位与参与运算的两个值如果相应的二进制位都为1则该位结果为1否则为0
a b 对应的二进制结果为 0000 1100十进制为12
竖杠
按位或参与运算的两个值只要对应的二进制位由一个为1时该位结果就为1
a 竖杠 b 对应的二进制结果为 0011 1101十进制为61
^
按位异或参与运算的两个值当对应的二进制位不同时该为结果为1否则改为结果为0
a ^ b 对应的二进制结果为 0011 0001, 十进制为49
~
按位取反这个是单目运算符只有一个值参与运算运算过程是对每个二进制位取反即把1变0把0变1
~a 的二进制结果为 1100 0011十进制数为-61左移运算符运算数的各二进制位全部左移若干位高位丢弃低位补0结果相当于运算数乘以2的n次方正负符号不发生改变
a 2 的二进制结果为 1111 0000十进制数为240右移运算符运算数的各二进制位全部右移若干位结果相当于运算数除以2的n次方正负符号不发生改变
a 2 的二进制结果为 0000 1111十进制为15