• Python基础篇【第二篇】:运算符


    运算符:

    运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如1+2,其中数字1和2就是操作数而+号就是运算符。

    Python中运算符包括:算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级。

    假设变量a=10,b=20然后用Python中所有的运算符进行操作:

    Python算术运算符

    运算符描述实例
    + 加 - 两个对象相加 a + b 输出结果 30
    - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
    * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
    / 除 - x除以y b / a 输出结果 2
    % 取模 - 返回除法的余数 b % a 输出结果 0
    ** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
    // 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
     1 #!/usr/bin/env python3
     2 
     3 a = 10
     4 b = 20
     5 
     6 c = a + b   #两数相加
     7 print(c)
     8 
     9 c = a - b   #两数相减
    10 print(c)
    11 
    12 c = a * b   #两数相乘
    13 print(c)
    14 
    15 c = a / b   #两数相除
    16 print(c)
    17 
    18 c = a % b   #取模,返回除法的余数
    19 print(c)
    20 
    21 c = a ** b  #幂(次方)
    22 print(c)
    23 
    24 c = a // b  #取整数,返回商的整数部分
    25 print(c)

    运行结果如下:

     1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/Arithmetic_operators.py
     2 30
     3 -10
     4 200
     5 0.5
     6 10
     7 100000000000000000000
     8 0
     9 
    10 Process finished with exit code 0

    Python比较运算符

    运算符描述实例
    == 等于 - 比较对象是否相等 (a == b) 返回 False。 
    != 不等于 - 比较两个对象是否不相等 (a != b) 返回 true. 
    <> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
    > 大于 - 返回x是否大于y (a > b) 返回 False。
    < 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。 
    >= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
    <= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。 

     1 #!/usr/bin/env python3
     2 
     3 a = 10
     4 b = 20
     5 c = 0
     6 
     7 if (a == b):        #等于
     8     print('a等于b')
     9 else:
    10     print('错误')
    11 
    12 if (a != b):        #不等于
    13     print('a不等于b')
    14 else:
    15     print('错误')
    16 
    17 # if (a <> b):        #不等于(python2.x)
    18 #     print('a不等于b')
    19 # else:
    20 #     print('错误')
    21 
    22 if (a > b):         #大于
    23     print('a大于b')
    24 else:
    25     print('错误')
    26 
    27 if (a < b):         #小于
    28     print('a小于b')
    29 else:
    30     print('错误')
    31 
    32 if (a >= b):        #大于等于
    33     print('a大于等于b')
    34 else:
    35     print('错误')
    36 
    37 if (a <= b):        #小于等于
    38     print('a小于等于b')
    39 else:
    40     print('错误')

    运行结果:

    1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/bijiaoyunsuanfu.py
    2 错误
    3 a不等于b
    4 错误
    5 a小于b
    6 错误
    7 a小于等于b
    8 
    9 Process finished with exit code 0

    *注意"<>"这个运算符(不等于)在Python3.x中已经移除了!比较结果如下:

     1 bogon:~ zk$ python
     2 Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
     3 [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
     4 Type "help", "copyright", "credits" or "license" for more information.
     5 >>> a = 10
     6 >>> b = 20
     7 >>> if (a <> b):
     8 ...     print('yes')
     9 ... else:
    10 ...     print('no')
    11 ... 
    12 yes
    13 >>> exit()
    14 bogon:~ zk$ python3
    15 Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
    16 [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
    17 Type "help", "copyright", "credits" or "license" for more information.
    18 >>> a = 10
    19 >>> b = 20
    20 >>> if (a <> b):
    21   File "<stdin>", line 1
    22     if (a <> b):
    23            ^
    24 SyntaxError: invalid syntax    #语法错误在Python3.x中没有这个运算符!

    Python赋值运算符

    运算符描述实例
    = 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
    += 加法赋值运算符 c += a 等效于 c = c + a
    -= 减法赋值运算符 c -= a 等效于 c = c - a
    *= 乘法赋值运算符 c *= a 等效于 c = c * a
    /= 除法赋值运算符 c /= a 等效于 c = c / a
    %= 取模赋值运算符 c %= a 等效于 c = c % a
    **= 幂赋值运算符 c **= a 等效于 c = c ** a
    //= 取整除赋值运算符 c //= a 等效于 c = c // a

    1
    #!/usr/bin/env python3 2 3 a = 10 4 b = 20 5 c = 0 6 7 c = a + b #把a+b的变量和赋值给c变量 8 print(c) 9 10 c += a #意思是c = c + a 11 print(c) 12 13 c -= a #意思是c = c - a 14 print(c) 15 16 c *= a #意思是c = c * a 17 print(c) 18 19 c /= a #意思是c = c / a 20 print(c) 21 22 c %= a #意思是c = c % a 23 print(c) 24 25 c **= a #意思是c = c ** a 26 print(c) 27 28 c //= a #意思是c = c // a 29 print(c)

    运算结果:

     1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/赋值运算符.py
     2 30
     3 40
     4 30
     5 300
     6 30.0
     7 0.0
     8 0.0
     9 0.0
    10 
    11 Process finished with exit code 0

    Python位运算符

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

    运算符描述实例
    & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
    | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
    ^ 按位异或运算符:当两对应的二进位相异时,结果为1  (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
    ~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1  (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
    << 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
    >> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数  a >> 2 输出结果 15 ,二进制解释: 0000 1111
     1 #!/usr/bin/env python3
     2 
     3 a = 10
     4 b = 60
     5 c = 0
     6 
     7 #一下是数字转成二进制的方法
     8 #例如取10,60数字的二进制
     9 #128    64    32    16    8    4    2    1
    10 #0      0     0     0     1    0    1    0      =   10
    11 #0      0     1     1     1    1    0    0      =   60
    12 #0      0     0     0     1    0    0    0      =   8
    13 #
    14 # 所以数字10,60,的二进制分别为
    15 #     10 = 1010
    16 #     60 = 111100
    17 
    18 c = a & b   #按位与运算符:二进制位置中相对应的为1的则为1,否则为0
    19 print(c)
    20 #128    64    32    16    8    4    2    1
    21 #0      0     0     0     1    0    1    0      =   a = 10
    22 #0      0     1     1     1    1    0    0      =   b = 60
    23 #0      0     0     0     1    0    0    0      =   c = a & b = 8
    24 
    25 c = a | b   #按位或运算符:只要对应的位置是1的时候就是1
    26 print(c)
    27 #128    64    32    16    8    4    2    1
    28 #0      0     0     0     1    0    1    0      =   a = 10
    29 #0      0     1     1     1    1    0    0      =   b = 60
    30 #0      0     1     1     1    1    1    0      =   c = a | b = 62
    31 
    32 c = a ^ b   #按位异或运算符:就是相对应的位置不一样的时候等于1
    33 print(c)
    34 #128    64    32    16    8    4    2    1
    35 #0      0     0     0     1    0    1    0      =   a = 10
    36 #0      0     1     1     1    1    0    0      =   b = 60
    37 #0      0     1     1     0    1    1    0      =   c = a ^ b = 54
    38 
    39 c = ~ a   #按位取反运算符:就是把相对应的位置反过来(太极图黑白!)
    40 print(c)
    41 #原理
    42 #+128    +64    +32    +16    +8    +4    +2    +1
    43 #0       0      0      0      1     0     1     0       =   10(相加)
    44 #
    45 #~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~ (阴阳界)
    46 #1       1      1      1      0     1     0     1       =
    47 #-128    -64    -32    -16    -8    -4    -2    -1      =   c = ~ a = -11(相减)
    48 
    49 c = a << 2  #做移动运算符:往左边移动两位
    50 print(c)
    51 #128    64    32    16    8    4    2    1
    52 #0      0     0     0     1    0    1    0      =   a = 10
    53 #0      0     1     0     1    0    0    0      =   c = a << 2 = 40
    54 
    55 c = a >> 2  #右移动运算符:往右边移动两位
    56 print(c)
    57 #128    64    32    16    8    4    2    1
    58 #0      0     0     0     1    0    1    0      =   a = 10
    59 #0      0     0     0     0    0    1    0      =   c = a >>2 = 2

    运算结果:

    1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/位运算符.py
    2 8
    3 62
    4 54
    5 -11
    6 40
    7 2
    8 
    9 Process finished with exit code 0

    Python逻辑运算符

    运算符逻辑表达式描述实例
    and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
    or x or y 布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 10。
    not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
     1 #!/usr/bin/env python3
     2 
     3 a = 20
     4 b = 20
     5 
     6 print(a and b)      #如果a是false返回值就是false,如果a是true返回值就是b变量的值
     7 
     8 print(a or b)       #如果a是false返回值就是b变量的值,如果a是true返回值就是a的值
     9 
    10 print(not a)        #如果a是true返回值就是false,如果a是false返回值就是true

    运算结果:

    /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/逻辑运算符.py
    20
    20
    False
    
    Process finished with exit code 0

    Python成员运算符

    运算符描述实例
    in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
    not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
     1 #!/usr/bin/env python3
     2 
     3 a = 10
     4 b = 3
     5 li = [1,2,3,4,5,6,7,8,9,0]
     6 
     7 print(a in li)      #如果a在li列表中返回true,否则返回false
     8 print(b in li)
     9 
    10 print(a not in li)  #如果ab不在li列表中返回tru,否则返回fals
    11 print(b not in li)

    运算结果:

    1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/成员运算符.py
    2 False
    3 True
    4 True
    5 False
    6 
    7 Process finished with exit code 0

    Python身份运算符

    运算符描述实例
    is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
    is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
     1 #!/usr/bin/env python3
     2 
     3 a = 10
     4 b = 20
     5 c = 20
     6 
     7 print(a is b)               #a,b有相同的标示返回true否则返回false
     8 
     9 print(b is c)               #b,c有相同的标示返回true否则返回false
    10 
    11 print(id(a) == id(b))       #a,b有相同的标示返回true否则返回false
    12 
    13 print(id(b) == id(c))       #b,c有相同的标示返回true否则返回false
    14 
    15 print(a is not b)           #a,b有相同的标示返回false否则返回true
    16 
    17 print(b is not c)           #b,c有相同的标示返回false否则返回true
    18 
    19 print(id(a) != id(b))       #a,b有相同的标示返回false否则返回true
    20 
    21 print(id(b) != id(c))       #b,c有相同的标示返回false否则返回true

    运算结果:

     1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/身份运算符.py
     2 False
     3 True
     4 False
     5 True
     6 True
     7 False
     8 True
     9 False
    10 
    11 Process finished with exit code 0
  • 相关阅读:
    PHP数组(数组正则表达式、数组、预定义数组)
    面向对象。OOP三大特征:封装,继承,多态。 这个讲的是【封存】
    uvalive 3938 "Ray, Pass me the dishes!" 线段树 区间合并
    LA4329 Ping pong 树状数组
    HDU 1257 最少拦截系统
    HDU 1260 Tickets
    codeforce 621D
    codeforce 621C Wet Shark and Flowers
    codeforce 621B Wet Shark and Bishops
    codeforce 621A Wet Shark and Odd and Even
  • 原文地址:https://www.cnblogs.com/allan-king/p/5448661.html
Copyright © 2020-2023  润新知