python基础(一)--python3运算符

注意:本系列文章的python版本为3.6.9


动态语言与静态语言

静态语言

声明了变量类型之后,变量的类型不能再改变,编译时会进行此类检查

动态语言

不用事先声明变量类型,随时可以赋值为其他类型
因此在编程时,有些变量的类型没有声明,使用时会比较难判断
python属于动态语言

算数运算符

+,-,*,/,//,%取模,**幂运算

减法:主要用于数值的计算,有一些浮点数计算时,不能准确计算
>>> 3-1
2
>>>1.1-0.9
0.20000000000000007
加法:可以用于数值的相加,也可以用于字符串的相加
>>> 'a'+'b'
'ab'
>>> 1+2
3
乘法:可以进行数值相乘,也可以复制字符串
>>> 3*3
9
>>> 'abc'*3
'abcabcabc'
除法:/,//,在python2中,///都是整除
/也叫自然除法,如果不能整除,会返回浮点数值
>>> 10/3
3.3333333333333335
>>> 3/1
3.0  ##python3使用自然除法的时候总是得到浮点数
//也叫地板除法,不能整除的会进行取整,使用向小取整的方式
>>> 9//2
4        ##精确结果为4.5,使用向小取整法,因此结果为4
>>> -3//2
-2       ##精确结果为-1.5,使用向小取整法,得到结果为-2
>>> 20//4.0
5.0      ##算式中包含浮点数时,按照浮点数的精度来表示结果

python3数学函数

1.pow():求幂,pow(3,10)=59049
2.abs():求绝对值,abs(-3.0)=3.0
3.round():四舍五入,round(1.777)=2
4.int():取整,直接取整数部分,int(3.999)=3 #不进行任何和其他操作,直接截取整数部分
5.float():转换成浮点数,float(1)=1.0
6.oct():十进制转换为八进制,oct(10)=0o12
7.hex():十进制转化为十六进制,hex(10)=0xa
8.bin():十进制转换为二进制,bin(10)=0b1010
位运算符

&:位与,见名知意,就是把数值转换成二进制然后逐位进行与运算

>>> 100&96
96   
# 01100000
# 01100100
# --------
# 01100000     #都为1时才能计算成1

|:位或,把数值转换成二进制然后逐位进行或运算

>>>7|8
15
# 0111
# 1000
# ----
# 1111    #有1就得1,都为0才得0

>>>1|3
3
# 01
# 11
# --
# 11

^:异或,将数值转换为二进制后进行异或运算

>>> 3^8
11
# 0011
# 1000
# ----
# 1011     #同位不同就得1,同位相同就得0

<<:左移,将数值转换为二进制后,进行左移,可用于计算

>>> 3<<3    #此表达式表示的是3*2**3(3乘以2的3次方,即3*8),
24          
>>> 2<<9 	#2乘以2的9次方
1024		    #左移n位表示的是将数值乘以2的n次方

>>:右移,将数值转换为二进制后,进行右移,可用于部分计算

>>> 2>>1      #表示的是2除以2的1次方(2/2=1)
1
>>> 2>>2      #这个不能使用以上的规则表达
0
# 10
# -->右移两位 将2的高位往右移2两位则所有的位就变成0了
# 00
由于位运算只会得出整数,因此如果需要进行精确的浮点数除法时,不要使用位运算^_^
比较运算符

==:恒等,用于比较两边的值是否相等

#(1)可用于同种数据结构之间的对比,返回布尔值
#(2)也可用于不同数据结构之间的对比,返回布尔值
#(3)不能用于未声明的变量之间的对比,会报错
#(4)在进行引用类型判断时,比较的只是内容,不能确保两个对象是相同的,若需比较,可使用is比较或者使用id查看对象的地址
>>> 3==3
True
>>> 'a' == 'a'
True
>>> 1=='1'
False    #数值1和字符串1不相等,返回逻辑假

!=:不等,用于比较两边是否不等

# 规则和==基本相似
>>> 2 != 2
False
>>> 2 != 3
True
>>> 2 != '2'
True
>>> 2 != 'a'
True

>=,用于对比两边的大小,也可用于对比表达式的结果大小

>>> '1==1' >= '1!=1'
True         ##左边表达式结果为真,因此数值为1,右边表达式逻辑为假,因此数值为0
>>> 'ba' >= 'aa'
True
>>> 22 >= 'a' ##不能进行不同种类之间的大小比较

<=,与>=运算规则相同
>,同上
<,同上
等于号,等于号在python中用于赋值,因此不是运算符

链式比较:类似于1<3>2

#链式比较在python中使用较少,
#对于此类比较可以拆解成多个比较表达式
>>> 2<1<5
False    #可以拆解为1>2 and 1<5
逻辑运算符

逻辑运算符也是短路运算符,python中所有的数据对象要么是True要么是False,可以直接在布尔测试的表达式中使用
与:and或:or非:not

>>> 1 and 'abcd' and 0  #可以写成0 and 1 and 'abcd'这样整个表达式就短路了,可以直接得出结果,减少计算量
False
>>> 'a' and 'dsdsadsa'
'dsdsadsa'     #根据短路原则,因为是与运算,至少要计算到后面时才可以决定真假了,因此返回值为后面的字符串
>>> 'a' or 'dsdsadsa'
'a'            #根据短路原则,最少可以直接根据第一个表达式得出整个逻辑表达式的值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值