运算符
定义: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))
这里使用了时间模块,观察现象,时间取值是一样,但是引用对象内存地址是不一样的