python 数据运算
一,基础运算符
1、算数运算
+
:加;-
:减;*
:乘;/
:除;%
:取余;**
:幂运算;//
:整除(小数转化成整数)
详细查看第五项内容python 定义-CSDN博客https://blog.csdn.net/h0039490/article/details/142671145
#加法:有浮点型数据则结果返回浮点型 print('加法 +') print(1+1) #2 print(1+1.0) #2.0 print(2.5+2.5) #2.0 #减法:有浮点型数据则结果返回浮点型 print('减法 -') print(1-1) #0 print(1-1.0) #0.0 print(2.5-2.5) #0.0 #乘法:有浮点型数据则结果返回浮点型 print('乘法 *') print(0*1) #0 print(1*1) #1 print(1*1.0) #1.0 print(2.5*2.5) #6.25 print(2*2.5) #5.0 #除法:无论数据是否整形,结果都会是浮点型 print('除法 /') # print(1/0) #直接报错提示,终止进程 print(1/1) #1.0 整型相除也会是浮点 print(6/4) #1.5 print(2.5/1) #2.5 print(2.5/2.5) #1.0 #取余:有浮点型数据则结果返回浮点型 print('取余 %') print(5%2) #1 print(5.1%2) #1.0999999999999996 print(5%2.5) #0.0 print(2%5) #2 print(2%5.1) #2.0 #幂运算:有浮点型数据则结果返回浮点型;负数直接使用,无需括号 print('幂运算 **') print(2**3) #8 print(2.1**3) #9.261000000000001 print(2**3.5) #11.313708498984761 print(2**-3) #0.125 #整除:有浮点型数据则结果返回浮点型;向下取整数(int是只保留整数部分) print('整除 //') print(16//3) #2 print(16//-3) #-3 print(16//3.5) #4.0 print(16//-3.5) #-5.0
2、比较运算
==
:等于;!=
:不等于;<
:小于;>
:大于;<=
:小于等于;>=
:大于等于
运算结果为布尔值(True or False)
print(10==10.0)#只比较值是否相等,不识别类型:True print(3.14!=3.1415)#True print(255>170)#True print(255<170)#False print(255>=255)#True print(255<=255)#True
tips: 0<x<100 两个符号同时运行,不分先后(5<x and x<20)
3、逻辑运算
and :与 or :或 ;not :非
格式:A and B , A or B , not A
意义:A和B都是表达式,在 逻辑与 情况下,先行判断A的布尔判断是否为真(True), 若为真则继续执行B的布尔判断,以此作为结果;若A为假,则直接结束此语句,结果为假。在 逻辑或 情况下,先行判断A的布尔判断是否为真(True), 若为真则直接结束此语句,结果为真;若A为假,继续执行B的布尔判断,以此作为结果。在 逻辑非 情况下,先行判断A的布尔判断是否为真(True), 若为真则直接结束此语句,结果为真;若A为假,继续执行B的布尔判断,以此作为结果。
#老师列子: and def fn(): print("执行了fn") # 打印 return 10 def fm(): print("执行了fm") # 打印 return 20 re = fn() and fm() print(re) #20 def fn(): print("执行了fn") # 打印 return 0 def fm(): print("执行了fm") # 打印 return 20 re = fn() and fm() print(re) #20 #老师列子: or def fn(): print("执行了fn") # 打印 return 10 def fm(): print("执行了fm") # 打印 return 20 re = fn() or fm() print(re) #20 def fn(): print("执行了fn") # 打印 return 0 def fm(): print("执行了fm") # 打印 return 20 re = fn() or fm() print(re) #20 #老师列子: not def fn(): print("执行了fn") # 打印 return 0 re = not fn() print(re) #20 def fn(): print("执行了fn") # 打印 return 10 re = not fn() print(re) #20
4、位运算
& :与;|
:或;^
:异或;~
:取反;<<
:左移位;>>
:右移位
运算结果为布尔值(True or False)
a=79 b=80 b1=-80 print(bin(a)) #0b1001111 print(bin(b)) #0b1010000 print(bin(b1)) #-0b1010000 # & 位与 同位置都为一 print('& 位与') c=a&b print(bin(c))#0b1000000 都是1 则取1否则为0 # | 位或 print('| 位或') c=a|b print(bin(c))#0b1011111 都是0 则取0否则为1 # ^ 位异或 print('^ 位异或') c=a^b print(bin(c))#0b0011111 不同取1,相同则取0 # ~ 取反 print('~ 取反') c=~b c1=~b1 print(bin(c))# 0b1010000 变成 -0b1010001 print(bin(c1))#-0b11010000 变成 0b01001111 print(c) #-81 print(c1) #79 # << 左移位 print('<< 左移位') c=a<<2 print(bin(c))#0b100111100 # >> 右移位 print('>> 右移位') c=a>>2 print(bin(c))#0b10011 print(c)#19
tips:位运算使用二进制运算,使用十进制数据时,系统换算为二进制,若使用八进制数据则提示字符串不能用于位运算
左移位直接在右边添加零;右移位直接右边删掉移位位数
取反操作可使用 ~n = -(n+1) 快速计算;参考:python按位取反(~)_位反 python-CSDN博客
5、赋值运算
=
:赋值;+=
:加法赋值;-=
:减法赋值;*=
:乘法赋值;/=
:除法赋值;%=
:取模赋值;**=
:幂运算赋值;//=
:整除赋值
等同于基础运算部分, 例 x += 2 等价 x=x+2。
tips:没有 a++、 a– 这种自增自减运算符;
二,数据转化
x=10 y=1 print(int(x)) # 转换为十进制整数 10 print(float(x)) # 转换到一个浮点数 10.0 print(bin(x)) # 转换为二进制 0b1010 print(oct(x)) # 转换为八进制 0o12 print(hex(x)) # 转换为十六进制 0xa print(complex(x)) # 转成实部为x 虚部为0 复数 0 (10+0j) print(complex(x, y)) # 转成实部为x 虚部为y 复数 0 (10+1j) print(bool(x)) # 转化为布尔值 True print(bool(0)) # 转化为布尔值 False
作者:今天又是学习