python3运算符

发布时间 2023-04-14 15:13:52作者: 挖洞404

1、介绍
python支持多种运算符,可以分为:算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符和其他运算符

2、算术运算符
bool类型参与算术运算时,True相当于1,False相当于0

(1)+
+可以表示加法运算,前后两个操作数必须是number类型,可以是不一致的,比如1+True
+可以表示正数,其后操作数为number类型,运算结果相当于0+操作数
+可以表示字符串的拼接,前后两个操作数必须是str类型,str类型和其他类型通过+运算,会报错
(2)-
-可以做减法运算,前后两个操作数必须是number类型,可以是不一致的,比如1-True
-可以表示负数,其后操作数为number类型,运算结果相当于0-操作数
(3)*
表示乘法,前后两个操作数必须是number类型,可以是不一致的,比如1True
(4)**
可以表示次方运算,前后两个操作数必须是number类型,表示进行后者操作数个对前者操作数连续相乘。比如53=555
可以表示对tuple和list中元素的复制,比如[12,33]
3,结果是[12,33,12,33,12,33]。对dict和set类型不支持
可以表示对字符串的复制,比如”abc”**3,结果是”abcabcabc”
(5)/
/表示除法,前后两个操作数必须是number类型,可以是不一致的
/的运算结果都是小数,无论是否整除。其结果是正常运算的结果,比如5/3,结果是1.6666666666666667
(6)//
//表示除法,在/的基础上,对结果进行处理
向下保留整数,即1.7和1.2保留为1,-1.2和-1.7保留为-2
(7)%
%表示取余,前后两个操作数必须是number类型,可以是不一致的
如果两个操作数都是整数,结果也是整数。如果存在一个浮点数,则结果是浮点数层面的取余,即5.2%2,结果是1.2
(8)python没有自加++、自减–

3、比较运算符
(1)python支持一般的比较运算符

< >= <= == !=
注意:
比较值,而非地址
两个操作数都是number类型,则比较数值,否则会比较类型及值
两个字面量完全相同,或者元素和属性的值完全相同,则判断相同。
print([12] == [12]) # True
print("12" == 12) # False
print(12.0 == 12) # True
print((12) == [12]) # False
(2)is None 和is not None
用于判断变量是否为None值

(3)in 和not in
用于判断字符串是否包含在另一个字符串中
判断一个元素是否包含在一个序列对象中
不能判断一个序列的元素是否都包含在另一个序列中
print("12" in "abc12") # True
print("12" in [1, "12"]) # True
print("12" in (1, "12")) # True
print("12" in {1, "12"}) # True
print("12" in {1:"ab", "12":"dd"}) # True
print(["12"] in [1, "12"]) # False

4、赋值运算符
(1)主要是=,将右边的值赋值给左边的变量

(2)=与其他类型的运算符结合,比如+=,a+=3表示a=a+3

(3)if else赋值,等将于java中的?:

a = 12 if 5>3 else "abc"

5、逻辑运算符

and 逻辑与
or 逻辑或
not 逻辑非
不支持&&类似字符编写,而是使用关键字
不支持异或xor
and和or是短路运算符,优先级平级。而not优先级更高,先进行运算
6、其他运算符

(1).

主要对属性和方法调用,进行取值或赋值

(2)[]

对str、tuple、list类型使用,其内使用数值索引进行元素定位和截取
python支持正向和反向索引,正向从0开始,最大为len-1.反向从-1开始,最大为-len
定位时,超出表达范围会报错
截取时,超出范围不会报错,相当于为0或者为len,正常截取
对dict使用,其内索引为字典的键,获取键对应的值
(3)()

使用()进行优先运算声明