[Python]运算符(算数,赋值,比较)
程序员文章站
2024-03-15 14:50:06
...
运算符
- 算术运算符
- 赋值运算符
- 比较运算符
- 布尔运算符
- 位运算符
算术运算符
前五个为标准算术运算符
- 加+
- 减-
- 乘*
- 除/:运算结果变为float型
- 整除//:运算结果只保留整数部分
- 取余%:即模运算10≡ 1mod(3)
- 幂**
print(1+1)
print(1-1)
print(1*9)
print(9/3)
print(10/3)
print(10//3)
print(10%3)
print(10**3)
运行结果如图:
要注意的是 :在整除运算和取余运算中,当两个数为一正一负时
整除运算:
print(10//3)
print(-10//3)
print(10//-3)
结果如下:
即-(10/3)=-3.3…要向下取整。
取余运算:
print(10%3)
print(-10%3)
print(10%-3)
结果如下:
在一正一负两个数字进行取余运算时,需要遵循计算公式:余数=被除数-除数*商
即-10%3=-10-3*(-4)和10%-3=10-(-3)*(-4)。这里的商即整除的结果。
赋值运算符
赋值运算符的执行顺序为从右到左。
a=1+2
print(a)
结果为
而不是1。
赋值运算符支持:
- 链式赋值
- 参数赋值
- 系列解包赋值
链式赋值:
b=c=d=10
print(b,c,d)
print(id(b),id(c),id(d))
可以看出它们指向了同一内存地址。
参数赋值:
参数赋值包括+=,-=,*=,/=,//=,%=
e=5
e+=6 #e=e+6
print(e)
e-=4 #e=e-4
print(e)
e*=2 #e=e*2
print(e)
e/=3 #e=e/3
print(e)
e//=2 #e=e//2
print(e)
e%=2 #e=e%2
print(e)
运算结果如下:
系列解包赋值:
f,g,h=1,2,3#
print(f,g,h)
结果如下:
要注意的是:等号左右侧的个数要相同。
赋值结果会与位置一一对应,因此系列解包赋值可以帮助我们在不需要中间变量的情况下进行值的互换。
i,j=10,20
print(i,j)
print('不需要中间变量的交换')
i,j=j,i
print(i,j)
结果如下:
可以有效减少参数交换频繁时的代码量。
比较运算符
对变量或表达式的结果进行大小、真假等比较。返回结果为bool值。
比较运算符包括:
- <,<=,>,>=,=,!=
- 对象value的比较 ==
- 对象id的比较 is / is not即id相同或不相同
a,b=1,2
print('a大于b吗?',a>b)
print('a小于b吗?',a<b)
返回结果如图:
对象value的比较使用==,对象id的比较使用is
c=10
d=10
print('c==d?',c==d)
print('c is d?',c is d)
lst1=[11,12,13]
lst2=[11,12,13]
print('lst1==lst2?',lst1==lst2)
print('lst1 is lst2?',lst1 is lst2)
结果如图:
在第一个比较中,内存分配了一块用来存放10这个值,当d也赋值为10时,直接让d也指向了已有的10.
而在第二个比较中,因为是两个不同的list,所以内存分配了两个不同的块用来存放它们,因此is的比较返回的是False。而只比较值的==返回了True。
用id来看看他们的内存地址会更为直观:
print(id(c),id(d))
print(id(lst1),id(lst2))
结果如图:
推荐阅读
-
python 复合赋值语句+比较运算符+逻辑运算符
-
[Python]运算符(算数,赋值,比较)
-
python的数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算
-
python笔记01.1 算数运算符,比较运算符,赋值运算符
-
Python之算术运算符、赋值运算符、关系运算符、逻辑运算符
-
Java-day02【运算符(赋值、关系、逻辑、三元、算数、自增自减)、分支语句(顺序结构、if语句)】
-
举例讲解Python中的算数运算符的用法
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
实例说明Python中比较运算符的使用
-
深入解析Python中的变量和赋值运算符