美文网首页
10、运算符与表达式

10、运算符与表达式

作者: 唯老 | 来源:发表于2019-03-05 18:01 被阅读24次

    简介

    所谓运算符用于执行程序代码运算,会针对一个以上操作数来进行运算,可以执行某种运算或者是某项操作的符号,例如: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 b<c)#a>b为True继续计算c<b,b>c结果为False则结果为False
      print(a>b or c<b) #a>b为True则不继续计算c<b,结果为True
      
    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<b) # 输出 true
      print(a > 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、运算符与表达式

          本文链接:https://www.haomeiwen.com/subject/tziouqtx.html