运算符

1.运算符

1.1运算符的概念

  • 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。

1.2运算符的分类

  • 算术运算符

  • 赋值运算符

  • 比较运算符(关系运算符)

  • 逻辑运算符

  • 条件运算符(三元运算符)

    1.算术运算符

    + 加法运算符

a=1+2

- 减法运算符

a=3-2

* 乘法运算符

a=3*2

/ 除法运算符

a=3/2

// 整除,只会保留计算后的整数位,总会返回一个整型

a=3//2

% 取模,求两个数相除的余数

a=3%2

** 幂运算,求一个值的几次幂

a=2**3
7D27C3C3-CB76-4241-9D0A-FAAE434AA60B.png
2.赋值运算符

简单的说,就是把等号右边的值赋值给等号左边的值
x=3
x=x+3 还可以写成x+=3
• += (x+= 3 相当于 x = x + 3 )
• -= (x -= 3 相当于 x= x - 3 )
• *= (x = 3 相当于 x = x 3 )
• **= (x **= 3 相当于 x = x ** 3 )
• /= (x /= 3 相当于 x = x/ 3 )
• //= (x //= 3 相当于 x = x // 3 )
• %= (x %= 3 相当于 x= x % 3 )


1E8554D9-B9A0-4061-933A-D79A74A3CB75.jpeg
3.比较运算

比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False

  • >比较左侧值是否大于右侧值
  • >= 比较左侧的值是否大于或等于右侧的值
  • < 比较左侧值是否小于右侧值
  • <= 比较左侧的值是否小于或等于右侧的值
特殊的比较方式
  • == 比较两个对象的值是否相等
  • != 比较两个对象的值是否不相等
  • is 比较两个对象是否是同一个对象,比较的是对象的id
  • is not 比较两个对象是否不是同一个对象,比较的是对象的id
AF399B5E-9998-4E64-BE9C-91410F83B6D9.png

注意:
1.如果是字符串的比较,比的是ASCII值.
字符串对位比较,两个字符串第一位字符的ASCII码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符,以此类推,需要注意的是空格的ASCII码是32,空(null)的ascii码是0.
2.is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。
==是python标准操作符中的比较操作符,是用来比较判断两个对象的value(值)是否相等.
is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同.

293F9FDF-F12C-40F9-A319-2C28B45930A8.png

AD7BFBA1-6CE5-4636-B182-53D842A50208.png
4.逻辑运算符
4.1 not 逻辑非

not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True

注意:
1.对于非布尔值, 非运算(not)会将其转换为布尔值,然后在进行取反.

  1. 例如:0、空字符串、None等,这些表示空性的值就会转化为False,剩下的全是True.
a = 123  # True
a = '' #False
a = 'Python' #True
a = 0 #False
a = not a
print('a = ',a)
4.2 and 逻辑与

and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False(与运算是找False的,如果第一个值为False,则不再看第二个值)

a=3
b=5
c=5
d=8
q = a<b and b>c  #False
q = a<b and b<d  #True
print ('q = ',q)
4.2 or 逻辑或

或运算两个值中只要有一个True,就会返回True(或运算是找True的)

a=3
b=5
c=5
d=8
q = a<b or b>c  #True
q = a>c or b>c  #False
print ('q = ',q)
4.3 非布尔值的与或运算
  • 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值

  • 非布尔值与运算的规则
    • 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值

  • 非布尔值或运算的规则
    • 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值

## 非布尔值的与或运算
#非布尔值与运算,找False
result = 1 and 2            #2
result = 0 and 2            #0
result = 0 and None         #0
result = 2 and 1            #1
#非布尔值或运算,找True
result = 1 or 2             #1
result = 0 or 2             #2
result = 0 or None      #None
result = 2 or 0             #2

5.条件运算符(三元运算符)

22675802-d8c4a3dfed98a202.png

条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2

a = 1
b = 5
print('a 的值比较大') if a > b else print('b 的值比较大') # b 的值比较大

# 比较a,b的最大值
a = 2
b = 1
m = a if a > b else b
print(m)  #2
C38FD524-0DB4-4B74-A6DC-B7C0A44F32E2.png

6.运算符的优先级

运算符的优先级参照表

Operator Description
:= Assignment expression
lambda Lambda expression
ifelse Conditional expression
or Boolean OR
and Boolean AND
not x Boolean NOT
in, not in, is, is not, <, <=, >, >=, !=, == Comparisons, including membership tests and identity tests
** ** Bitwise OR
^ Bitwise XOR
& Bitwise AND
<<, >> Shifts
+, - Addition and subtraction
*, @, /, //, % Multiplication, matrix multiplication, division, floor division, remainder [5]
+x, -x, ~x Positive, negative, bitwise NOT
** Exponentiation [6]
await x Await expression
x[index], x[index:index], x(arguments...), x.attribute Subscription, slicing, call, attribute reference
(expressions...),[expressions...], {key: value...}, {expressions...} Binding or parenthesized expression, list display, dictionary display, set display
22675802-fd0a0f6419e64ec2.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。