python3 运算符(上篇)

运算符

定义:python使用运算符把一个或多个操作数相连,取得想要的结果,实现特定的功能,可以当成我们学习数学公式一样,特定的运算相连获得结果

赋值运算符

给常量和变量赋值,使用符号"="赋值

a = "python3"
print(a)
'''a变量赋值字符串'''

a = 1234
print(a)
'''改变变量赋值只要重新赋值即可'''

b = 123
c = b
print(c)
'''变量也可以当成赋值,b的变成赋值给c'''

d = 1
d1 = d + 100
print(d1)
'''变量本身也是有值的,就是被赋的值,那么变量就能参与算数相加'''

a1,a2,a3 = 1,2,3
print(a1)
print(a2)
print(a3)
'''多个变量同时赋值,中间加逗号隔开'''

在这里插入图片描述
到这里肯定多少会有点疑惑,其实要很好的理解这个需要知道赋值是怎么被存储的
在这里插入图片描述

变量保存的值其实是一个引用关系,就是内存的地址,重新赋值也只是改变了引用关系而已,不是修改之前的值,那么就能很好的理解上面赋值的这些方法。

查看变量的内存地址,重新赋值后地址是不一样的

a = 100
print(id(a))
a = 200
print(id(a))

在这里插入图片描述

算数运算符

基本的数学运算,加、减、成、除、求余等

在这里插入图片描述
加,符号+

'''第一种,加法运算'''
a = 1 + 2
b = 3
ab = a + b
print(a)
print(ab)
'''2个变量同样支持算数,但是需要都是整型int才行'''

'''第二种,字符串拼接'''
a = "python"
b = '3'
ab = a + b
print(ab)
'''上篇讲到字符串拼接是可以用+,注意类型必须是字符串'''

在这里插入图片描述
减法,符号-

'''第一种,减法运算'''
a = 100
b = 50
ab = a - b
print(ab)

'''第二种,求负运算'''
a = -5
print(-a)
a = 5
print(-a)
'''把值变成正或者负,我们都知道负负得正,正负得负'''

在这里插入图片描述
乘法,符号*

'''第一种,乘法运算'''
a = 1 * 0
print(a)
b = 10
ab = a * b
print(ab)
'''正常的乘法运算'''

'''第二种,连接运算符使用'''
a = "python3 " #最后留了一个空格
print(a * 5)
'''打印a的值5次'''

在这里插入图片描述
除法,符号/

除法 / 总是返回一个浮点数
python不支持除数为0

'''第一种,普通除法'''
a = 1
b = 2
ab = a / b
print(ab)
print(type(ab))

在这里插入图片描述

求取整运算符

求整,符号//

被除数 ‘’除以‘’ 除数的结果取整,小数部分丢弃

结果为正数:向上求整
结果为负数:向下求整
结果为整数:返回本身
向上向下 取整函数数只会对小数点后面的 数字不为零 的数进行操作

比如:4.5,-4.5
向上求整就是5
向下求整就是4

向上取整:比自己大的最小整数
向下取整:比自己小的最大整数
四舍五入:更接近自己的整数

print(5 // 4)
print(-5 // 4)
print(5 // -4)

结果为1.25
在这里插入图片描述

求余运算符

求余,符号%

求余可以是整型和浮点型,是第一个数除以第二个数结果后的值的余数
第二个数不能为0
余数的正负是由被除数决定的

print(5 % 3)
print(5.2 % 3.1)
print(5.2 % -3.1)
print(-5.2 % 3.1)
'''#余数的正负是由被除数决定的'''

print(5.2 % -2.4)
print(5.2 % -1.5)
print(3 % 5)

在这里插入图片描述
问题来了,最后3个值怎么得到的就很迷糊了
1、python求余运算的逻辑是:被除数-除数的N倍
怎么理解这个,公式就是:r=a-b*(a//b),a是被除数,b是除数
那么实际上python计算是:-5.2 - 2.4*(-5.2//2.4)=2
2、为什么python显示1.99999接近于2呢?
这个是由于浮点型的存储机制导致,有兴趣了解的可以网上查找资料

求乘方运算符

乘方,符号**

print(3 ** 4)
'''3的4次方'''
'''次方是一个数乘(不一定)次'''
'''3*3*3*3'''

print(4 ** 0.5)
'''4的平方'''
'''平方是一个数乘2次'''
'''2*2=4'''

print(27 ** (1 / 3))
'''27的开3次方'''
'''27=3*3*3'''

在这里插入图片描述

扩展后的赋值运算符

结合多个运算进行简化写法
这个是很常用的方法
在这里插入图片描述

索引运算符

索引,符号【】
默认索引号从0开始
格式:【起始:结束:步长】
后面讲到的列表,字典,元祖都需要使用到索引取值

a = 'abcdefg'
print(a[1])
print(a[0:3])
print(a[0:7:2])

在这里插入图片描述

比较运算符和bool类型

bool类型就是代表一个事情的真假,真的用True表示,错的用False表示
比较运算符是判断2个值的大小,结果通过bool类型表示

在这里插入图片描述

a = 5
print(4 > 3)
print(4 >= 3)
print(a == 4)

在这里插入图片描述
bool类型的True和False,其实是可以当成整数1和0,也就是可以参与运算

print(1==True)
print(0==False)

a = True
b = a +1
print(b)

在这里插入图片描述
等号 == 和 is 很相似,但是存在区别的
等号是比较2个值是否相等
is是比较2个引用对象是否一样,也就是内存地址是否一样

import time
a = time.gmtime()
b = time.gmtime()
print(a == b)
print(a is b)
print(id(a))
print(id(b))

在这里插入图片描述
这里使用了时间模块,观察现象,时间取值是一样,但是引用对象内存地址是不一样的

发布了37 篇原创文章 · 获赞 14 · 访问量 1394

猜你喜欢

转载自blog.csdn.net/yangshihuz/article/details/103754503