10、运算符与表达式

简介

所谓运算符用于执行程序代码运算,会针对一个以上操作数来进行运算,可以执行某种运算或者是某项操作的符号,例如:4 + 5这个式子中的4和5就是操作数,它们中间的"+"就是加法运算符,加法运算符可以将左右两个操作数相加,并得到相加的结果

一、表达式(Expressions)

1.1、概念

表达式是将不同类型的数据(常亮、变量、函数)用运算符按照一定得规则连接起来的式子

表达式的组成由运算符(Operators)和操作数(Operands)

1.2 、示例代码

  1. 示例1
    2 + 3 * 4
    
  2. 说明
    +、* 就是运算符
    2、3、4 就是操作数
  3. 示例2
    n1 = 1
    n2 = 3
    n3 = n1 + n2
    
  4. 说明
    实质就是操作数

二、算术运算符

2.1、概念

算术运算符包括四则运算符、求模预算符和幂运算符

算术运算符 表达式 说明
+ x + y 加 - 两个对象相加
- x - y 减 - 得到负数或是一个数减去另一个数
* x * y 乘 - 两个数相乘或是返回一个被重复若干次的字符串
/ x / y 除 - x除以y
% x%y 取模 - 返回除法的余数
** x**y 幂 - 返回x的y次幂
// x // y 取整除 - 返回商的整数部分

2.2、加 +

  1. 说明
    + 的两端都是数字时,则就是数学中的加法运算。
    + 两端都是字符串时,则就是把两端的字符串连接起来。
  2. 注意事项
    • 布尔值 True 可以作为数字 1 来使用, False 可以作为数字 0 ,所以他们可以和数字相加。(学完面向对象你就是清楚, 其实bool继承自int)
    • python 不允许字符串和数字相加
  3. 示例代码
    add1 = 3 + 4
    print(add1)   # 7
    add2 = 3 + True
    print(add2) # 4
    add3 = 3 + False
    print(add3) # 3
    add4 = True * 0
    print(add4) # 0
    # add5 = "a" + 3  # 错误!不允许字符串和数字相加
    

2.3、减 -

  1. 说明
    两个数相减。
  2. 注意事项
    减法只能用于操作数字。
  3. 示例代码
    a = 100
    b = 50
    c = 10
    i = a - b
    i1 = c - true
    

2.4、乘 *

  1. 说明
    两个数相乘。如果有一个是字符串一个是整数,则得到的重复整数次的字符串
  2. 示例代码
    result1 = 3 * 4.1
    print(result1)
    result2 = 2 * "Hello "
    print(result2)
    result3 = "world " * 3
    print(result3)
    

2.5、幂 **

  1. 说明
    x ** y 返回 xy 次方 x^y
  2. 示例代码
    a = 2
    b = 3
    c = a**b 
    print(c)
    

2.6、除 /

  1. 说明
  2. 示例代码
    result1 = 10 / 2
    print(result1)
    result2 = 10 / 3
    print(result2)
    result3 = -11.3 / 3
    print(result3)
    

三、比较(关系)运算符

2.1、概念

关系运算符是对两个对象进行比较

运算符 表达式 说明
== a==b 等于,比较对象是否相等,返回bool
!= a !=b 不等于,比较两个对象是否不相等,返回bool
> a > b 大于,比较a是否大于b,返回bool
< a < b 小于,比较a是否小于b,返回bool
>= a>=b 大于等于,比较a是否大于或者等于b,返回bool
<= a<=b 小于等于,比较a是否小于或者等于b,返回bool

2.2、说明

  1. 如果是两个数字则比较他们数学上的大小。
  2. 如果是两个字符串比较,则是比较的他们在码表中的顺序。先比较第一个字母,如果相等再比较第二个...
  3. 如果有布尔值参与比较,则 True1 来用,False0 来用。
  4. 数字和字符串不能进行比较!
  5. 比较运算符计算的结果一定是布尔值。

2.3、示例代码

  1. 示例
    a = 21
    b = 10
    c = 0
    if  a == b :
       print ("1 - a 等于 b")
    else:
       print ("1 - a 不等于 b")
    if a != b :
       print ("2 - a 不等于 b")
    else:
       print ("2 - a 等于 b")
    if  a < b :
       print ("3 - a 小于 b")
    else:
       print ("3 - a 大于等于 b")
    if  a > b:
       print ("4 - a 大于 b")
    else:
       print ("4 - a 小于等于 b")
    
  2. 示例
    #python中的比较运算符可以组成链接。只有每个运算符计算的结果都是 True ,最终的结果才会为 True。否则就是 False
    r1 = 5 > 4 > 3
    print(r1)   # True   因为 5 大于 4是 True,并且 4 大于 3 是 True
    r2 = 5 > 4 == (2 + 1)
    print(r2)   # False  因为 5 大于 4 是 True,但是 4 == 2 + 1 是 False
    

四、逻辑运算符

1、概要

python 共支持 3 种逻辑运算符。

运算符 表达式 说明
and a and b 逻辑与,当a为True时才计算b
or a or b 逻辑或,当a为False时才计算b
not not a 逻辑非

Python的逻辑运算(and,or,not)与C/C++、Java等语言不太一样。这些语言的逻辑运算返回的值都是bool值,而Python返回的则不同

2、非运算 not

  1. 说明
    取反,如果表达式为真则为假,反之假的则为真

3、与运算 and

  1. 运算规则
    • 若左边的表达式为真,则返回右边表达式的值
    • 否则,返回左边表达式的值
  2. 示例代码(非运算)
    a = 20
    b = 10
    c = 0
    print(a>b and b>c) #a>b为True继续计算b>c,b>c也为True则结果为True
    print(a>b and bb为True继续计算cc结果为False则结果为False
    print(a>b or cb为True则不继续计算c
  3. 示例代码(运算)
    a = 30
    b = 20
    c += a > b and b
    print(c) #输出 20
    

4、或运算 or

  1. 非运算
    有一个是 True 结果就是 True
    由于任何类型都可以参与运算,所以更加准确的规则应该是:
    如果第一个是 True 或者相当于 True ,则结果就是第一个数据,否则最终的结果就应该是第二个数据
  2. 运算规则
    • a or b
    • 如果a为真,无需计算b,就可得知整个表达式的真值为真,所以结果为a的值
    • 如果a为假,继续计算b,b将决定整个表达式最终的值,所以结果为b的值
  3. 示例代码
    a = 10
    b = 20
    c = 0
    print(a>b or c 100 or b > 100) #输出false
    print(a < 0 or b)  #输出 b的值 20
    

5、附 真值表

Object bool值
"" False
"Str" True
0 False
1 True
()空元组 False
[]空列表 False
{}空字典 False
None False

六、赋值运算符

1、说明

赋值运算符就是给变量赋值或者赋值加运算

2、支持的赋值运算符

运 算 符 说 明 举 例 展 开 形 式
= 简单的赋值运算 x=y x=y
+= 加赋值 x+=y x=x+y
-= 减赋值 x-=y x=x-y
*= 乘赋值 x*=y x=x*y
/= 除赋值 x/=y x=x/y
%= 取余数赋值 x%=y x=x%y
**= 幂赋值 x*=y* x=x*y*
//= 取整除赋值 x//=y x=x//y

七、成员运算符

1、说明

如果在指定的序列中找到了,那么结果是True,如果没有找到,那么结果是False.

2、成员运算符

in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

八、身份运算符

1、说明

所谓身份运算符就是比较两个变量内存地址是否相等,类似 id(变量) == id(变量)

2、运算符

运算符 描述 示例
is is 是判断两个标识符是不是引用同一个对象 x is y,类似 id(x) == id(y)
is not is not 是判断两个标识符是不是引用不同对象 x is not y,类似 id(a) != id(b)

3、与==的区别

  • is 用于判断 两个变量 引用对象是否为同一个
  • == 用于判断 引用变量的值 是否相等
a = [100,200]
b = [100,200]
print(b is a)
# False
print(b == a)
# True

九、运算符优先级(由高到低)

1、说明

运算符的优先级我不推荐大家去死记硬背,只需要记住一条碰到需要优先计算的使用()括起来

2、优先级

  1. ** 指数 (最高优先级)
  2. ~ + - 按位翻转, 一元加号和减号 (正负号)
  3. * / % // 乘,除,取模和取整除
  4. + - 加法减法
  5. >> << 右移,左移运算符
  6. & 位 'AND'
  7. ^ | 位运算符
  8. <= < > >= 比较运算符
  9. <> == != 等于运算符
  10. = %= /= //= -= += *= **= 赋值运算符
  11. is is not 身份运算符
  12. in not in 成员运算符
  13. not or and 逻辑运算符

十、位运算符(了解)

1、说明

按位运算符是把数字看作二进制来进行计算的

运算符 表达式 说明
& a & b 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
| a | b 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
^ a ^ b 按位异或运算符:当两对应的二进位相异时,结果为1
~ ~a 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
<< a<<2 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>> a>>2 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数

2、示例代码

a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
c = a & b  # 12 = 0000 1100
print("1 - c 的值为:", c)
c = a | b  # 61 = 0011 1101
print("2 - c 的值为:", c)
c = a ^ b  # 49 = 0011 0001
print("3 - c 的值为:", c)
c = ~a  # -61 = 1100 0011
print("4 - c 的值为:", c)
c = a << 2  # 240 = 1111 0000
print("5 - c 的值为:", c)
c = a >> 2  # 15 = 0000 1111
print("6 - c 的值为:", c)

3、转化函数

  1. 二进制数字字符串 -> 整形
    int('00001111',进制) 默认10进制
    
  2. 整形 -> 二进制数字字符串
    bin(number)
    

你可能感兴趣的:(10、运算符与表达式)