zoukankan      html  css  js  c++  java
  • 第二篇 Python运算符

    1.算术运算符

    运算符

    描述

     +

     两个值相加

     -

     两个值相减

     *

     两个值相乘

     /

     两个值相除

     %

     得到两个数相除的余数

     **

     x**y得到x的y次幂

     //

     返回两个数相除商的整数部分

    a = 32
    b = 19
    
    print("+)返回两个值的和:", a + b)  # 51
    print("-)返回两个值的差:", a - b)  # 13
    print("*)返回两个值的乘积:", a * b)  # 608
    print("/)返回两个值的商:", a / b)  # 1.6842105263157894
    print("%)返回两个值相除的余数:", a % b)  # 11
    print("**)返回2的3次幂:", 2 ** 3)  # 8
    print("//)返回两个值相除的整数部分", a // b)  # 1

      说明:  

    • 在Python3中,两个整数相除,得到的结果会是一个浮点数。  
    • 字符串里有限度的支持加法和乘法运算符,加法运算符用于两个字符串类型时,用来拼接两个字符串。
    • *运算符用于字符串和数字,计算的结果就是字符串重复指定次数的结果。
    print("*"*30)  # ******************************

     2.比较运算符

    运算符 描述
    == 比较两个对象是否相等,相等返回true,不相等,返回false
    != 比较两个对象是否不相等,不相等返回true,相等返回false
    >  比较第一个对象是否大于第二个对象,大于,返回true,否则返回false
    <  比较第一个对象是否小于第二个对象,小于,返回true,否则返回false
    >=  比较第一个对象是否大于等于第二个对象,大于等于,返回true,否则返回false
    <=  比较第一个对象是否小于等于第二个对象,小于等于,返回true,否则返回false
    a = 32
    b = 32
    print("==)比较两个值是否相等:", a == b)  # True
    print("!=)比较两个值是否不相等:", a != b)  # False
    a = 40
    b = 32
    print(">)比较第一个值是否大于第二个值:", a > b)  # True
    print("<)比较第一个值是否小于第二个值:", a < b)  # False
    b = 40
    print(">=)比较第一个值是否大于等于第二个值:", a >= b)  # True
    print("<=)比较第一个值是否小于等于第二个值:", a <= b)  # True

      比较运算符在字符串里的使用

    # 字符串之间使用比较运算符,会根据各个字符的编码值逐一进行比较
    # ASCII码表
    print('a' > 'b')  # False 97 > 98
    print('abc' > 'a')  # False 97 > 98
    # 数字和字符串之间,做==运算的结果是False,做!=结果是True,不支持其他的比较运算。
    
    # print('a' > 90)
    print('a' == 90)  # False
    print('a' != 90)  # True

    3.赋值运算符

    运算符 描述
    = 把右边的值赋给左边的
    += 左边的值等于左边的值加上右边的值
    -= 左边的值等于左边的值减去右边的值
    *= 左边的值等于左边的值乘上右边的值
    /= 左边的值等于左边的值除以右边的值
    %= 左边的值等于左边的值属于右边的值的余数
    //= 左边的值等于左边的值除以右边的值的整数部分
    **= 左边的值等于左边的值的右边值的次幂
    a = 13
    b = 6
    a += b
    print("+=):", a)  # 19
    a = 13
    b = 6
    a -= b
    print("-=):", a)  # 7
    a = 13
    b = 6
    a *= b
    print("*=):", a)  # 78
    a = 13
    b = 6
    a /= b
    print("/=):", a)  # 2.1666666666666665
    a = 13
    b = 6
    a %= b
    print("%=):", a)  # 1
    a = 13
    b = 6
    a //= b
    print("//=):", a)  # 2
    a = 13
    b = 6
    a **= b
    print("**=):", a)  # 4826809

      赋值运算符的特殊场景

    # 等号连接的变量可以传递赋值
    a = b = c = d = 'hello'
    print(a, b, c, d)
    m, n = 3, 5  # 拆包
    print(m, n)
    # 拆包时,变量的个数和值的个数不一致,会报错
    # y, z = 1, 2, 3, 4, 5
    
    x = 'hello', 'good', 'yes'
    print(x)  # ('hello', 'good', 'yes')
    # *表示可变长度
    o, *p, q = 1, 2, 3, 4, 5, 6
    print(o, p, q)  # 1 [2, 3, 4, 5] 6

    4.位运算符(了解)

    运算符 描述
    & 按位与运算符,两个值的相应位都为1,该位结果为1,否则为0
    | 按位或运算符,两个值的相应位其中一个为1,则该位结果为1,否则为0
    ^ 按位亦或运算符,两个值的相应位不相同时,则该结果为1,否则为0
    ~ 按位取反运算符,对数据的每个二进制位取反,即把1变成0,把0变成1
    << 按位左移运算符,把二进制位全部左移若干位
    >> 按位右移运算符,把二进制位全部右移若干位
    a = 5  # 00000101
    b = 6  # 00000110
    c = a | b
    print("a|b):", c)  # 7
    print("a&b):", a & b)  # 4
    print("~a):", ~a)  # ~a=-(a+1)  -6
    print("a^b):", a ^ b)  # 3
    print("<<):", a << 2)  # 20
    print(">>):", a >> 2)  # 1

      注:按位取反的计算公式:~a=-(a+1),a+1然后加上负号,~12的二进制位00001100,加1之后为00001101,十进制为13,加上负号为-13。

    5.逻辑运算符

    运算符 描述
    and  逻辑与,只要一个运算数是False,结果就是False;只有所有的运算数都是True,结果才是True
    or 逻辑或,只要有一个运算数是True,结果就是True;只有所有的运算数都是False,结果才是False
    not 逻辑非,如果值为True,则结果为False,如果值为False,则结果为True
    a = 12
    b = 13
    print("and):", a and b)  # 13
    a = 1
    b = 0
    print("and):", a and b)  # 0
    a = 0
    b = 1
    print("and):", a and b)  # 0
    a = 1
    b = 0
    print("or):", a or b)  # 1
    a = 0
    b = 1
    print("or):", a or b)  # 1
    print("not):", not a)  # True
    print("not):", not b)  # False

      逻辑运算的短路

    4 < 3 and print('你好世界')  # 逻辑与运算的短路问题
    4 < 3 or print('嘿嘿嘿')  # 逻辑或运算的短路问题
    
    # 逻辑运算的结果,一定是布尔值吗?不一定
    # 逻辑与运算做取值时,取第一个为False的值;如果所有的运算数都是True,取最后一个值
    print(3 and 5 and 0 and 'hello')  # 0
    print('good' and 'yes' and 'ok' and 100)  # 100
    # 逻辑或运算做取值时,取第一个为True的值;如果所有的运算数都是False,取最后一个
    print(0 or [] or 'lisi' or 5 or 'ok')  # lisi
    print(0 or [] or {} or ())  # ()

      说明:

    • 在没有()的情况下,优先级:not > and > or,同一优先级从左至右依次计算。

    6.成员运算符

    运算符 描述
    in 如果在指定的列表中找到值则返回True,否则返回False
    not in 如果在指定的列表中没有找到值则返回True,否则返回False
    lists = [1, 2, 3, 4, 5, 6, 7]
    print("in):", (1 in lists))  # True
    print("in):", (12 in lists))  # False
    print("not in):", (12 not in lists))  # True

    7.身份运算符

      身份运算符是判断两个对象的内存地址是否一样,即是否是同一个对象的引用。

    运算符 描述
    is  判断两个对象的内存地址是否一样
    is not 判断两个对象的内存地址是否不一样
    lists = [1, 2, 3, 4, 5, 6, 7]
    lists_copy = [1, 2, 3, 4, 5, 6, 7]
    print("is):", lists is lists_copy)  # False
    print("not is):", lists is not lists_copy)  # True
    print("==):", lists_copy == lists)  # True

      注:is和==的区别为is判断内存地址是否一样,而==判断的是值是否一样

    8.运算符的优先级

      对于运算符的优先级了解即可吧,可以通过括号控制运算符的优先级。

  • 相关阅读:
    Managing C++ Objects: 管理C++对象 —— 一些建议准则
    像Java一样管理对象:T&形式仅仅用在参数传递
    Visual Studio的语法着色终于调得赏心悦目
    j.u.c: Java并发包的5大块
    笔记:Java Language Specification
    线程与锁
    分布式系统涉及的基本问题
    微服务为什么是一种趋势
    js实现复制功能
    css label两端对齐
  • 原文地址:https://www.cnblogs.com/zhuzhaoli/p/10247045.html
Copyright © 2011-2022 走看看