本篇主要介绍:占位运算符、算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、身份运算符、成员运算符、序列运算符和运算符优先级
一、占位运算符
运算符类似于C语言中sprintf或printf函数中使用的占位符,在字符串中可以给出一些占位符用来表示不同类型的数据,而实际的数据值在字符串之外给出。
%d:有符号整型十进制数
%f或%F:有符号浮点型十进制数
%s:字符串
由于%作为占位符的前缀字符,因此对于有占位符的字符串,表示一个%时需要写成“%%“。
二、算术运算符
算术运算是计算机支持的主要运算之一,其运算对象是数值型数据。
小提示:十进制小数在转换为二进制时有可能会产生精度损失,结果与实际计算结果之间存在偏差,问题不大
三、赋值运算符
赋值运算要求左操作数对象必须是值可以修改的变量。
四、比较运算符
比较运算的作用是对两个操作数对象的大小关系进行判断。
比较运算返回的结果是布尔值True或False。在执行程序时,程序中的每条语句并不一定是按顺序依次执行。比较运算的主要作用是设置条件,某些语句在满足条件时才会执行一次 ( 即条件语句),而某些语句在满足条件时会重复执行多次(即循环语句)。
五、逻辑运算符
逻辑运算可以将多个比较运算连接起来形成更复杂的条件判断。
六、位运算符
(1)十进制转二进制:除基取余法
用2去除十进制整数,得到商和余数;如果商不为0,则继续用2除,再得到商和余数,重复该步骤直至商为0;
最后将余数按照从后至前的顺序排列,即得到转换后的二进制数。
(2)二进制转十进制:按权展开求和
即将二进制数的每一位携程数码乘以位权的形式,再对乘积求和。
(3)位运算是指对二进制数进行逐位运算。
print(i1^i2) #输出“5”。计算方法:011B^110B=101B=5
print(i1<<1) #输出“6”。计算方法:11B<<1=110B=6
print(i1>>1) #输出“1”。计算方法:11B>>1=1B=1
七、身份运算符
身份运算用于比较两个对象是否对应同样的存储单元。
程序在运行时,输入数据和输出数据都是存放在内存中。内存中的一个存储单元可以存储一个字节的数据,每个存储单元都有一个唯一的编号,称为内存地址。根据数据类型不同,其所占用的内存大小也不同。一个数据通常会占据内存中连续多个存储单元,起始存储单元的地址称为该数据的内存首地址。利用id函数可以查看一个数据的内存首地址。x is y等价于id(x)==id(y),即判断x和y的内存首地址是否相同;x is not y等价于id(x)!=id(y),即
判断x和y的内存首地址是否不相同。
八、成员运算符
成员运算用于判断一个可迭代对象(序列、集合或字典)中是否包含某个元素。
提示:使用成员运算符判断一个数据是否是字典中的元素,实际上就是判断该数据是否是字典中某个元素的键。
九、序列运算符
用于序列操作的运算符
例如:1 x,y=[12,False],['abc',15,True]
2 z=x+y #x和y拼接后的结果赋给z
3 print(z) #输出“[12, False, 'abc', 15, True]”
4 s1,s2='我喜欢学习','Python'
5 s=s1+s2 #s1和s2拼接后的结果赋给s
6 print(s) #输出“我喜欢学习Python”
7 x_3=x*3 #将序列x的元素重复3次,生成一个新序列并赋给x_3
8 print(x_3) #输出“[12, False, 12, False, 12, False] ”
9 s_3=s*3 #将字符串s重复3次,生成一个新字符串并赋给s_3
10 print(s_3) #输出“我喜欢学习Python我喜欢学习Python我喜欢学习Python”
十、运算符优先级
在一个表达式中,通常会包含多个运算,这就涉及到了运算的顺序,其由两个因素确定:运算符的优先级和运算符的结合性。 对于具有不同优先级的运算符,会先完成高优先级的运算,再完成低优先级的运算。对于具有相同优先级的运算符,其运算顺序由结合性来决定。结合性包括左结合和右结合两种,左结合是按照从左向右的顺序完成计算,而右结合是按照从右向左的顺序完成计算。
披荆斩棘,仗剑天涯