运算符 | 描述 |
() | 改变运算符优先级 |
** | 幂运算符 |
~ | 反码运算符 |
*、/、%、// | 乘除运算符 |
+、- | 加减运算 |
>>、<< | 位移运算 |
& | 位与运算 |
^、| | 异或与或运算 |
<=、、>= | 比较运算 |
==、!= | 关系运算 |
=、+=、-=、*=、/=、//=、**= | 简化运算符 |
is、is not | 身份运算符 |
in、not in | 成员运算符 |
not、or、and | 逻辑运算符 |
2、数学运算符
运算符 | 描述 | 操作范例 |
+ | 加法计算 | 20+15=35 |
- | 减法计算 | 20-15=5 |
* | 乘法计算 | 20*15=300 |
/ | 除法计算(÷) | 20/15=1.333333 |
% | 取模计算(余数) | 10%3=1(商3余1) |
** | 幂运算 | 10**3=1000 |
// | 整除运算,返回商 | 10//3=3 |
3、简化赋值运算符
运算符 | 范例用法 | 说明 | 描述 |
+= | a+=b | a+b的值存放到a中 | a=a+b |
-= | a-=b | a-b的值存放到a中 | a=a-b |
*= | a*=b | a*b的值存放到a中 | a=a*b |
/= | a/=b | a/b的值存放到a中 | a=a/b |
%= | a%=b | a%b的值存放到a中 | a=a%b |
**= | a**=b | a**b的值存放到a中 | a=a**b |
//= | a//=b | a//b的值存放到a中 | a=a//b |
字符串上如果采用乘法计算,实际上就可以轻松实现重复的输出处理,比如:
4、关系运算符
运算符 | 描述 | 操作范例 |
== | 相等比较 | 1==1、返回True |
!= | 不相等比较 | 1 != 1、返回False |
> | 大于比较 | 10>5、返回True |
< | 小于比较 | 10<20、返回True |
>= | 大于等于比较 | 20>=10、返回True |
<= | 小于等于比较 | 10<=20、返回True |
5、逻辑运算符
逻辑运算一共包含三种:与(多个条件一起满足)、或(多个条件有一个满足)、非(实现True变False和False变True的结果转换)
运算符 | 描述 | 操作范例 |
and | 逻辑与运算 | True and True =True、True and False =False |
or | 逻辑或运算 | True and False =True |
not | 非运算 | not True = False |
6、进制转换函数
操作 | 描述 |
bin(数值) | 将数值转换成二进制数据 |
oct(数值) | 将数值转换成 八进制数据 |
init(数值) | 将数值转换成 十进制数据 |
hex(数值) | 将数值转换成 十六进制数据 |
7、位运算符
运算符 | 描述 | 操作范例 |
& | 位与计算 | 2(10)& 1(01)=0(00) |
| | 位或计算 | 2(10)| 1(01)=3(11) |
^ | 位异或计算 | 2(10)^1(01)=3(11) |
~ | 反码计算 | ~2(10)= -3 |
<< | 左移运算符 | 2(10)<<2 =8(1000) |
>> | 右移运算符 | 8(1000) >> 2 = 2(10) |
8、身份运算符
身份运算符是Python自己提供的一种运算符,主要的功能是进行完全相等的判断,内容和内存的双判断
运算符 | 描述 | 操作范例 |
is | 判断是否引用同一内存 | 10 is 10 (等价于id(10)==id(10))返回True |
is not | 判断是否引用不同内存 | 10 is not 10.0 (等价于id(10)!=id(10.0))返回True |
小练习:
#1.+:不支持字符与数字相加,python将True当做1,False当做0print("算术加法3+4:",3+4)print("列表合并[1,2,3]+[4,5,6]:",[1,2,3]+[4,5,6])print("元组合并(1,2,3)+(4,5):",(1,2,3)+(4,5))print("字符串拼接hello+Dragon!:"+"hello"+"Dragon!")
运行结果:
#2.-:print("算数减法3-4:",3-4)print("集合差集{1,2,3}-{1}:",{1,2,3}-{1})print("相反数-4:",-4)
#2.-:
print("算数减法3-4:",3-4)
print("集合差集{1,2,3}-{1}:",{1,2,3}-{1})
print("相反数-4:",-4)
运行结果:
#3.*:乘法,序列与整数的乘法、生成新的序列对象,不支持字典和集合print("乘法3*4:",3*4)print("列表乘法[1,2,3]*4:",[1,2,3]*4)print("元组乘法(1,2,3)*4:",(1,2,3)*4)print("字符串乘法Dragon-*4:","Dragon-"*4)
#3.*:乘法,序列与整数的乘法、生成新的序列对象,不支持字典和集合
print("乘法3*4:",3*4)
print("列表乘法[1,2,3]*4:",[1,2,3]*4)
print("元组乘法(1,2,3)*4:",(1,2,3)*4)
print("字符串乘法Dragon-*4:","Dragon-"*4)
运行结果:
#4./:真除法print("除法3/4:",3/4)print("除法8/4:",8/4)print("除法3/2:",3/2)print("除法8.0/4:",8.0/4)print()#5.//:下取整print("除法3//4:",3//4)print("除法8//4:",8//4)print("除法3//2:",3//2)print("除法8.0//4:",8.0//4)
#4./:真除法
print("除法3/4:",3/4)
print("除法8/4:",8/4)
print("除法3/2:",3/2)
print("除法8.0/4:",8.0/4)
print()
#5.//:下取整
print("除法3//4:",3//4)
print("除法8//4:",8//4)
print("除法3//2:",3//2)
print("除法8.0//4:",8.0//4)
运行结果:
#6.%:取余,字符串格式化print("取余 3%4:",3%4)print("取余 123.45 % 3:",123.45%3)print("取余 123 % 3.2:",123%3.2)print("取余 -15 % 4:",-15%4)print("取余 -15 % -4:",-15%-4)print("取余 15 % -4:",15%-4)print("把65分别格式化为字符和整数 '%c,%d' % (65,65):",'%c,%d' % (65,65))print("把65分别格式化为实数和字符串 '%f,%s' % (65,65):",'%f,%s' % (65,65))
#6.%:取余,字符串格式化
print("取余 3%4:",3%4)
print("取余 123.45 % 3:",123.45%3)
print("取余 123 % 3.2:",123%3.2)
print("取余 -15 % 4:",-15%4)
print("取余 -15 % -4:",-15%-4)
print("取余 15 % -4:",15%-4)
print("把65分别格式化为字符和整数 '%c,%d' % (65,65):",'%c,%d' % (65,65))
print("把65分别格式化为实数和字符串 '%f,%s' % (65,65):",'%f,%s' % (65,65))
#7.**:幂运算print("幂运算 2**4:",2**4)print("幂运算 pow(2,4):",pow(2,4))print("平方根 9**0.5:",9**0.5)print("负数的平方根 -9**0.5:",(-9)**0.5) #-9有无括号结果不同!print()
#7.**:幂运算
print("幂运算 2**4:",2**4)
print("幂运算 pow(2,4):",pow(2,4))
print("平方根 9**0.5:",9**0.5)
print("负数的平方根 -9**0.5:",(-9)**0.5) #-9有无括号结果不同!
print()
#8.关系运算符:返回bool结果print("2>4>7:",2>4>7)print("等价:2>4 and 4>7:",2>4>7)print("3<5>2:",3<5>2)print("等价:3<5 and 5>2:",3<5>2)
#8.关系运算符:返回bool结果
print("2>4>7:",2>4>7)
print("等价:2>4 and 4>7:",2>4>7)
print("3<5>2:",3<5>2)
print("等价:3<5 and 5>2:",3<5>2)
#9.in:成员测试运算符print("成员测试运算符 3 in [1,2,3]:",3 in [1,2,3])print("成员测试运算符 'abc' in 'abcdefg':",'abc' in 'abcdefg')print()
#9.in:成员测试运算符
print("成员测试运算符 3 in [1,2,3]:",3 in [1,2,3])
print("成员测试运算符 'abc' in 'abcdefg':",'abc' in 'abcdefg')
print()
#10.is:同一性测试运算符:同一个对象或相同的地址print("Python采用内存管理模式,变量并不存值,而是地址或引用")print("同一性测试运算符 3 is 3:", 3 is 3)x=[1,2,3]y=[1,2,3]print("当前的x:",x)print("当前的y:",y)print("不同对象 x is y:", x is y)print("同一个值内存中只有一份 x[0] is y[0]:", x[0] is y[0])x.append(4)print("当前的x:",x) #此时y无影响x=y #x,y指向同一个对象print("x,y指向同一个对象 x is y:",x is y)x.append(4)print("当前的x:",x)print("当前的y:",y)print()
#10.is:同一性测试运算符:同一个对象或相同的地址
print("Python采用内存管理模式,变量并不存值,而是地址或引用")
print("同一性测试运算符 3 is 3:", 3 is 3)
x=[1,2,3]
y=[1,2,3]
print("当前的x:",x)
print("当前的y:",y)
print("不同对象 x is y:", x is y)
print("同一个值内存中只有一份 x[0] is y[0]:", x[0] is y[0])
x.append(4)
print("当前的x:",x) #此时y无影响
x=y #x,y指向同一个对象
print("x,y指向同一个对象 x is y:",x is y)
x.append(4)
print("当前的x:",x)
print("当前的y:",y)
print()