zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    北科的秋天
    最大子段和问题(dp)
    cmd应用
    问题 H: 抽奖活动(大数)
    大数算法
    模板整理(三)
    在CMD中建立一个不能删除的文件
    波利亚(Polya)罐子模型
    51nod-迷宫问题(Dijkstra算法)
    优先队列
  • 原文地址:https://www.cnblogs.com/allan-king/p/5448661.html
Copyright © 2011-2022 走看看