[python学习笔记] 运算符

数学运算符

与大多语言相同的运算符就不介绍了。不同的地方会用 (!不同)标出

  • 与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

原文地址:https://www.cnblogs.com/boliu/p/7486871.html