Python3从零基础到入门(2)—— 运算符

02-27 阅读 0评论

目录

Python3从零基础到入门(2)—— 运算符,Python3从零基础到入门(2)—— 运算符,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第1张
(图片来源网络,侵删)

一、算术运算符

1.四则运算符

(1)加

(2)减

(3)乘

(4)除

Python3从零基础到入门(2)—— 运算符,Python3从零基础到入门(2)—— 运算符,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第2张
(图片来源网络,侵删)

2.取模

3.幂

4.取整除

二、关系运算符

1.等于关系运算符

2.不等于关系运算符

Python3从零基础到入门(2)—— 运算符,Python3从零基础到入门(2)—— 运算符,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第3张
(图片来源网络,侵删)

3.大于关系运算符

4.小于关系运算符

5.大于等于关系运算符

6.小于等于关系运算符

7.不同数据类型的比较

(1)数字与数字比较

(2)字符串与字符串比较

(3)列表、元组之间的比较

(4)字符串与数字比较

三、赋值运算符逻辑运算符

1.简单赋值运算符

2.加法赋值运算符

3.减法赋值运算符

4.乘法赋值运算符

5.除法赋值运算符

6.取模赋值运算符

7.幂赋值运算符

8.取整除赋值运算符

四、位运算符

1.位运算概览

(1)布尔位运算符

1)按位与运算符 ( & )

2)按位或运算符 (  |  )

3)按位异或运算符( ^ )

4)按位取反运算符( ~ )

2.移位运算符

(1)左移动运算符( > )

五、成员运算符

1.in

2.not in

六、身份运算符

1.is与is not 运算符

2.is 与 ==区别

七、运算符优先级

1.圆括号的表达式

2.读取,切片,调用,属性引用

3.await 表达式

4.乘方(指数)

5.正,负,按位非 NOT

6.乘,矩阵乘,除,整除,取余

7.加和减

8.移位

(1)左移

p id="%EF%BC%882%EF%BC%89%E5%8F%B3%E7%A7%BB%3E%3E-toc" (2)右移>

9.按位与 AND

10.按位异或 XOR

11.按位或 OR

12.比较运算,包括成员检测和标识号检测

13.逻辑非 NOT

14.逻辑与 AND

15.逻辑或 OR

16.条件表达式

17.lambda 表达式

18.赋值表达式


一、算术运算符

1.四则运算符

(1)加

加法运算符用 + 表示,代表对两个数据进行相加操作,如下:

a = 10
b = 8
print(a + b)

输出的结果是:

18

那么如果两个变量不是整数,会怎么样呢?我们来看下:

a = 10.6
b = 8.41
print(a + b)

输出结果如下:

Python3从零基础到入门(2)—— 运算符

如果你对 C语言中浮点数的存储方式比较熟悉,那么就应该知道,浮点数的计算是会产生误差的的,所以明明在数学上 10.6 + 8.41 的结果是 19.001,但是输出来竟然是 19.009999999999998。这就是浮点数的精度误差。

(2)减

减法运算符用 - 表示,代表对两个数据进行相减操作,如下:

a = 10
b = 8
print(a - b)

输出的结果是:

2

对于浮点数的相减,同样会产生精度问题,不再累述。

(3)乘

乘法运算符用 * 表示,代表对两个数据进行相乘操作,如下:

a = 10
b = 8
print(a * b)

输出的结果是:

80

对于浮点数的相乘,同样会产生精度问题,不再累述。

(4)除

除法运算符用 / 表示,代表对两个数据进行相除操作,如下:

a = 10
b = 3
print(a / b)

输出的结果是:

3.3333333333333335

由于并非整除,所以产生了一定的精度误差,符合预期。

2.取模

取模运算符用 % 表示,代表两数相除的到的余数,如下:

a = 10
b = 3
print(a % b)

输出的结果是:

1

那么,如果除数是负数,或者被除数是负数,结果又是多少呢?如下:

print(-10 % 3)
print(-10 % -3)
print(10 % -3)

输出结果如下:

Python3从零基础到入门(2)—— 运算符

在 Python 中,取模结果的符号和除数相同;在 C语言 中,取模结果的符号和被除数相同。

3.幂

幂用 ** 表示。

其中 a**b 代表 a 的 b 次幂。如下:

a = 3
b = 4
print(3**4)

输出的结果如下:

81

当然,幂运算的右操作数,也支持负数。

4.取整除

取整除就是数学上的取下整的意思。用 // 表示,如下:

a = 10
b = 6
print(10 // 6)

输出的结果是:

1

二、关系运算符

关系运算符主要包括 ==、!=、>、=、 表示,用于比较两个值的大小。其基本语法如下:

 x > y

若 x 的值比 y 的值大,则返回True;否则返回False。

例如:

 a = 10
 b = 9
 print(a > b)

若大于则返回True;否则返回False。

输出结果如下:

True

4.小于关系运算符

小于关系运算符在Python中用

 x  

若 x 的值比 y 的值小,则返回True;否则返回False。

例如:

a = 10
b = 11
print(a  

若小于则返回True;否则返回False。

输出结果如下:

True

5.大于等于关系运算符

大于等于关系运算符在Python中用 >= 表示,用于比较两个值的大小。其基本语法如下:

x >= y

若 x 的值大于等于 y 的值,则返回True;否则返回False。

例如:

a = 10
b = 9
print("a >= b :", (a >= b))
c = 5
d = 5
print("c >= d :", (c >= d))

以上代码,a 的值是 10,b 的值是 11,c 的值是 5 ,d 的值是 5 ,使用 >= 关系运算符判断 a 是否大于等于 b 以及 c 是否大于等于 d,并输出其返回值。

输出结果如下:

Python3从零基础到入门(2)—— 运算符

6.小于等于关系运算符

小于等于关系运算符在Python中用 >a = [1,2,3] >>>b = a #b=a将两者指向同一个对象 >>>b is a #判断引用对象是否为同一个 True >>>b == a #判断引用变量的是否相等 True >>>b = a[:] #b=a[:]会创建一个新的与a完全相同的对象,但是与a并不指向同一对象 >>>b is a False >>>b == a True

七、运算符优先级

        在python中,运算符优先级是指在python解释器在进行多个运算时,根据运算符的优先级规则先计算这个后再计算另一个。如小学时数学中所学的先算括号里面的再算乘除,最后算加减,同理,python在进行运算时根据规则也是如此运算。

以下是从最高到最低优先级的所有运算符:

1.圆括号的表达式

一般使用括号()、中括号[]及大括号{}表示,例如:

a = (1 + 2) * 3
# a 的值为 9

其中小括号 (1+2) 用于强制对 1 和 2 的和进行计算,使得计算结果乘以 3。由于乘法操作符 * 的优先级高于加法操作符 +,因此不使用小括号进行强制运算优先级时,计算的顺序可能会与期望不同。因此,在这个例子中使用小括号能够确保计算顺序正确。

2.读取,切片,调用,属性引用

分别为:x[index], x[index:index], x(arguments...), x.attribute,按运算符优先级从高到低如下:

  • x(arguments...):函数调用运算符 () 优先级最高,总是首先执行。在一个表达式中,由于小括号可以改变运算符优先级关系,因此这个运算符是最强的分组运算符。
  • x[index] 和 x[index:index]:它们的优先级相同,都比点运算符低。这两个运算符都是序列类型(如字符串、列表和元组)中的索引和切片操作符,用于获取序列中的元素或子序列。
  • x.attribute:点运算符 . 是访问对象属性的运算符,在运算符优先级中优先级最低。在一个表达式中,点运算符总是最后执行,并且可以链接多个点运算符形成一个长链,例如 :obj.attr1.attr2.attr3。

    例如:

    my_list = ["apple", "banana", "cherry"]
    index = 1
    result = my_list[index].upper()
    print(result)

    输出结果为:

    BANANA

    这里定义了一个列表 my_list 和一个整数变量 index。接着,我们使用索引操作 my_list[index] 访问了列表的第二个元素 "banana",得到了一个字符串对象。然后,再使用点运算符 .upper() 访问字符串对象的内置方法 upper(),将其字母全部转换为大写形式,然后打印结果。其中可以看到先是进行了切片操作再进行的点运算。

    3.await 表达式

    await是用来等待协程完成的,像await x则是表示一个暂停当前协程的语法。

    4.乘方(指数)

    用符号**表示,操作如下:

    a = 2 + 3 * 5**2
    # a的值为77

    在python中还能使用内置函数pow()来表示:

    pow(2, 3)
    # 值为8

    与 ** 运算符不同的是,pow() 函数还可以指定第三个参数表示模数,即将结果对某个值取模的结果。如下:

    pow(2, 3, 5)
    # 值为3

    5.正,负,按位非 NOT

    其符号分别为:+x、-x、 ~x,操作如下:

    a = 10
    b = -a         # 负运算符,优先级最高
    c = ~a         # 按位非 NOT 运算符,优先级第二高
    d = a + b * c
    print(d)

    输出结果为:

    1010

    1010

    120

    可以看到的是以上代码先是运算完a、b、c的值再进行的加减乘除,而c的值为-11,怎么得到的?这里是将变量 a 的二进制表示中的每一位取反(0 变成 1,1 变成 0),得到补码 c=-11

    6.乘,矩阵乘,除,整除,取余

    使用的表示符号分别是:*,  @,  /,  //,  %。它们的预算优先级相同,运算时按照从左往右运算,例如:

    a = 10
    b = 3
    # 乘法
    c = a * b
    print("乘法:%d" % c)
    # 矩阵乘法
    import numpy as np
    x = np.array([[1, 2], [3, 4]])
    y = np.array([[5, 6], [7, 8]])
    z = np.dot(x, y)
    print("矩阵乘法:\n", z)
    # 除法
    d = a / b
    print("除法:%.2f" % d)
    # 整除
    e = a // b
    print("整除:%d" % e)
    # 取余
    f = a % b
    print("取余:%d" % f)

    输出结果为:

    乘法:30

    矩阵乘法:

    [[19 22]

    [43 50]]

    除法:3.33

    整除:3

    取余:1

    7.加和减

    加和减的使用和在数学上的使用基本一致,不过在python的表达中可以这样使用:

    a = 2
    a += 2
    a -= 2
    print(a)

    结果为:

    在python中,可以使用+=、-=这样来进行加减的运算。

    8.移位

    在 Python 中,移位(Shift)是一种按比特位对数值进行位移的运算。移位操作分为左移和右移两种。

    (1)左移

    p将数字的所有二进制位向左移动指定数量的位置,并在低位设置零值。例如,在整数 6(二进制表示:110)执行 6 > 2 时,将其向右移动两个位置,变成 11111111111111111111111111111110,其十进制值为 -2。这里的-6二进制表示是使用了补码所以有点长,在python中-6的表示为:0b11111111111111111111111111111010。

    9.按位与 AND

    & 符号代表按位与 AND 运算符。将两个数字的每个对应二进制位进行比较,如果两个位置上的二进制位都为 1,则该位结果为 1,否则为 0。如下是12 和 25(二进制表示分别为 1100 和 11001)的按位与的运算表示:

      1100
    & 11001
    -------
      10000

    所以,Python 中的 12 & 25 的结果为 16。

    10.按位异或 XOR

    使用符号 ^ 表示,如果两个位置上的二进制位不相同,则该位结果为 1,否则为 0。如下是12 和 25(二进制表示分别为 1100 和 11001)的按位异或的运算表示:

      1100
    ^ 11001
    -------
      11101

    因此,Python 中的 12 ^ 25 的结果为 29。

    11.按位或 OR

    使用符号 | 表示,在二进制位上对比,有一个为1,则为1,反之则为0。如下是12 和 25(二进制表示分别为 1100 和 11001)的按位或的运算表示:

      1100
    | 11001
    -------
      11101

    结果为:29。

    12.比较运算,包括成员检测和标识号检测

    一般使用 in,not in, is,is not, =, !=, == 来表达。从左往右分别为判断在不在一个集合里用 in 或 not in ;判断属不属于一个集合用 is 或 is not ,属于返回 True,反之返回 Flase;顺着的四个这是小于、小于等于和大于、大于等于;在python中不等于用 != 这个表示,而等号 = 则表示的是赋值,双等号 == 才表示等于。

    13.逻辑非 NOT

    逻辑非 NOT 运算符使用符号 not 表示。逻辑非是一个布尔运算符,用于将某个布尔表达式的值取反,即如果表达式的值为 True,则逻辑非返回 False,否则返回 True。以下是逻辑非 NOT 运算符的示例代码:

    x = True
    y = not x
    print(y) # 输出 False

    14.逻辑与 AND

    逻辑与 AND 运算符使用符号 and 表示。逻辑与也是一个布尔运算符,用于将多个布尔表达式连接起来进行逻辑与运算,即只有当所有表达式的值均为 True 时,逻辑与才返回 True,否则返回 False。以下是逻辑与 AND 运算符的示例代码:

    x = True
    y = False
    z = x and y
    print(z) # 输出 False

    15.逻辑或 OR

    使用符号 or 表示。用于将多个布尔表达式连接起来进行逻辑或运算,即只有当其中至少一个表达式的值为 True 时,逻辑或才返回 True,否则返回 False。以下是逻辑或 OR 运算符的示例代码:

    x = True
    y = False
    z = x or y
    print(z) # 输出 True

    需要注意的,按位和逻辑是俩种不同的运算方式:

      1)按位运算是指对二进制数进行的运算,以二进制位为单位进行处理。按位与(&)和按位或(|)是其中常见的运算符。按位与表示两个二进制数对应位上都为1时结果为1,否则为0;按位或表示两个二进制数对应位上都为0时结果为0,否则为1。

      2)逻辑运算是指对逻辑变量进行的运算,逻辑变量只有两个取值:真(true)和假(false)。逻辑与(&&)和逻辑或(||)是其中常见的运算符。逻辑与表示两个逻辑变量都为真时结果为真,否则为假;逻辑或表示两个逻辑变量有一个为真时结果为真,否则为假。

    16.条件表达式

    条件表达式(也称为三元表达式)可以用来简洁地表示一个条件语句,使用 if-else 语句的形式进行赋值。当条件表达式的值为 True,则将变量赋值为表达式1的值;否则将变量赋值为表达式2的值。以下是一个条件表达式的示例代码:

    x = 5
    y = 10
    z = x if x > y else y
    print(z)
    # 输出 10,因为 x  
    

    条件表达式可以替代常见的 if-else 语句,使代码更加简洁、清晰,但同时也容易造成代码可读性较低,所以还是要根据具体场景选择使用哪个方式。

    17.lambda 表达式

    lambda 表达式是一种用于创建匿名函数的语法结构,以下是一个使用 lambda 表达式实现简单的加法运算的示例代码:

    add = lambda x, y: x + y
    print(add(3, 5))
    # 输出 8

    lambda 表达式通常用于简化代码、增强可读性,在一些函数式编程的场景中具有重要的作用。但也需要注意不要过度依赖 lambda 表达式,以免影响代码的可维护性和可读性。

    18.赋值表达式

    赋值表达式(也称为海象运算符),是 Python 3.8 新增的一个语法结构。它可以在一行代码中同时进行变量赋值和表达式运算,以简化代码并提高可读性。但是需要注意,赋值表达式并不是一种通用的语法结构,在一些特殊的情况下可能会导致代码难以理解,因此需要谨慎使用。以下是基本形式:

    变量名 := 表达式
    #:= 就是赋值表达式的运算符,左侧是要被赋值的变量名,右侧是要进行的表达式运算。

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]