zoukankan      html  css  js  c++  java
  • 4.运算符、三元表达式


     

    算术运算符:

    算术运算符包含:

    +加法运算、

    -减法运算、

    *乘法运算、

    /精确除法运算、

    //地板除法运算、

    %求余运算、

    **幂运算符

    +加法运算:

    >>> a=1
    >>> b=2
    >>> c=a+b
    >>> c
    3

    -减法运算:

    >>> c=1000
    >>> a=6000
    >>> b=c-a
    >>> b
    -5000

    *乘法运算:

    >>> c=22
    >>> a=33
    >>> b=c*a
    >>> b
    726

     

    /精确除法运算、//地板除法运算:

    python的除法是比较精确的,没有像其他一些语言一样(其他语言的得出20/6=3),例如:

    >>> 20/6
    3.3333333333333335
    >>> 18/5
    3.6
    >>> 10/2
    5.0

    如果要使用“地板除法”(不保留小数),需要使用“//”,地板除法中如果其中一个操作数为负数,结果向负无穷取整

    >>> 20//6
    3
    >>> 18//5
    3
    >>> 10//2
    5

    image_5a746968_1b7b

     

    %求余运算:

    返回除法中的余数结果

    >>> 5%2
    1

     

    **幂运算符:指数(幂)

    >>> 2**3
    8
    >>> 2**-1
    0.5
    >>> 3**3
    27

     

     


    逻辑运算符:

    逻辑运算符包括:

    and与运算,

    or或运算,

    not非运算

    and与运算 :

    如果x为False,x and y返回False,

    如果x为True,返回y的计算值。本质是,z=True and y =y,如果x是真的话,最终结果取决于y

    >>> 0 and 2
    0
    >>> 1 and 2
    2
    >>> 1 and 99
    99
    >>> -1 and 99
    99

     

    or 或运算:

    如果x为False,返回y的值,

    如果x为True,不再判断y,返回x的值。

    image_5a747451_25c

    image

     

    not非运算:

    “not 表达式” 返回表达式结果的“相反的值”。如果表达式结果为真,则返回false;如果表达式结果为假,则返回true。

    >>> not 1
    False
    >>> not 2
    False
    >>> not 0
    True
    >>> not True
    False
    >>> not False
    True

    比较运算符(关系运算符):

    比较运算符关系运算符包括:

    <小于运算符,<=不大于运算符,>大于运算符,>=不小于运算符,==等于运算符,!=运算符 

    <

    如果左操作数的值小于右操作数的值,返回True,否则返回False

    image_5a7474f4_3d83

     

    >

    如果左操作数的值大于右操作数的值,返回True,否则返回False

    image_5a7474f4_2536

     

    !=    :

    如果两个操作数的值不相等,返回True,否则返回False

    image_5a7474f4_7b89

     

    <=

    如果左操作数的值小于或等于右操作数的值,返回True,否则返回False

    image_5a7474f4_24fa

     

    >=

    如果左操作数的值大于或等于右操作数的值,返回True,否则返回False

    image_5a7474f4_655f

     

    ==

    如果两个操作数的值相等,返回True,否则返回False 。【注意,只比较值是否相同,不计较内存地址是否相同

    image_5a7474f4_6836


    赋值运算符:

    =:将右侧操作数的值分配给左侧操作数

    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

     

    image_5a74750b_4fe3


    位运算符:

     

    &:

    按位与操作

     

    image_5a747513_4c7d

     

    |:

    按位或操作

    image_5a747513_7e85

     

    <<:

    二进制左移

    image_5a747513_1de8

     

    >>:

    二进制右移

    image_5a747513_6ffa

    image_5a747513_3704


    ^:

    二进制异或

    image_5a747513_56

     

    ~:

    ~x,返回将x的二进制取反之后的值

    image


    成员运算符:

    成员运算符包括:in运算符,not in运算符 

    in:

    x in y ,如果在指定的序列y中找到x,则返回 true,否则返回 false

    not in :

    x not in y ,如果在指定的序列y中找不到x,则返回 true,否则返回 false

    image_5a747542_53a8

    image


    身份运算符:

    身份运算符包括:is 运算符, is not运算符

    身份运算符比较两个对象的内存位置

     

    is :

    内存位置相同返回True,否则返回False

    >>> str1="apple"
    >>> str2=str1
    >>> id(str1)
    2590247801216
    >>> id(str2)
    2590247801216
    >>> str2 is str1
    True

    is not :

    内存位置不相同返回True,否则返回False

    a=1
    b=1
    c=999999999
    d=999999999
    print(id(a),id(b),a is b)
    print(id(c),id(c),c is d)
    str1="apple"
    str2="apple"
    print(id(str1),id(str2),str1 is str2)
    l1=['a','b','c']
    l2=['a','b','c']
    print(id(l1),id(l2),l2 is l1)

    上述代码结果:

    image

    另外的测试:

    >>> a=1000000
    >>> b=1000000
    >>> id(a)
    2590249791600
    >>> id(b)
    2590249791632
    >>> a="str1"
    >>> b="str1"
    >>> id(a)
    2590249830528
    >>> id(b)
    2590249830528

    这个问题体现缓存技术的使用:为了节省内存空间,或者为了节省时间,对于数据是同一份不可变的对象的不同名变量,使用缓存技术可以节约空间,而对于可变对象,如即使初值相同的列表,后面的操作不同为了不互相干扰,所以不使用缓存技术来节约空间。

    如何查看缓存设置:待补充

     


    is 与 == 区别:

    引用对象是否为同一个, == 用于判断引用变量的值是否相等。

    image_5a74754a_22ce

    image_5a74754a_3d9

     

     

     


    运算符优先级:

    运算符的优先级:

    运算符的次序,序号小的优先级大于序号大的:

    image

     

    建议使用小括号来指示运算优先级,避免繁杂记忆。


    三元表达式(三元运算符):

    格式:条件为真时的结果 if 判定条件 else 条件为假时的结果  
     
    >>> a=250 if True else 150
    >>> a
    250
    >>> a=220 if 1<0 else 1
    >>> a
    1
     

  • 相关阅读:
    Saltstack的部署及其详解
    SSH免密远程登陆及详解
    LVS-负载均衡集群部署
    nginx的平滑升级
    MFS分布式文件系统管理
    cacti监控部署与配置
    Nagios部署与配置
    zabbix分布式监控的部署与win被控端
    Fail2防止sshd暴力破解
    C# 发邮件
  • 原文地址:https://www.cnblogs.com/progor/p/8407719.html
Copyright © 2011-2022 走看看