数学运算符
与大多语言相同的运算符就不介绍了。不同的地方会用 (!不同)标出
-
与java相同的运算符
- , - , * , % , /
-
不同之处
-
除法 (!不同)
- / 与java不同,整数相除,结果为浮点数。
- // 整除。结果为整数。浮点数相除,也只保留整数位
- 范例
print(5/2) # 2.5 print(5//2) # 2 print(5//2.3) # 2.0
-
自增/自减(!不同)
没有自增与自减运算。
-
** 乘方。 x**y 结果为x的y次方
print(2**10) # 输出 1024
-
赋值运算符
=,+= , -=,/=,//=,*=,**=
注意在python里表达式里不能用赋值运算符
i = 3;
print(i**=3) # 错误
print((i=i+1) >2) # 错误
位运算符
同java,也只能运算整数
<< 左移,>> 右移,& 与,| 或 , ^ 异或 , ~ 取反
== (!不同) 注意:没有无符号右移 ==
小细节: ~x == -(x+1)
比较运算符
与java相同。 >,<,>=,<=,!=
逻辑运算符(!不同)
只能用来运算bool值。 python的and与or,都是短路运算
- 与 and
- 或 or
- 非 not
- 示例
def a():#定义一个a方法 print('a') return 3; print(3<2 or a() < 5) # a True . a有输出 print(3>2 or a() < 5) # True a没有输出,短路
运算符优先级问题
- 流程控制语句: if else
- 逻辑运算符: or < and < not
- 其他: in, not in , is , is not (这里还不清楚,应该是循环里的符号)
- 比较运算符: 比较运算符优先级一直
- 位运算: | < ^ < & < (<<,>>)
- 数学运算符: (+,-) < (*,/,//,%) < (~ 取反) < (** 求幂)
当然,运算符的优先级可以通过 () 来改变。如:(1+2)*3