zoukankan      html  css  js  c++  java
  • Python数值运算

    算术运算

    a=10

    b=2

    +

    加-两个对象相加

    a+b输出结果12

    -

    减-得到负数或是一个数减去另一个数

    a - b输出结果8

    *

    乘-两个数相乘或是返回一个被重复若干次的字符串

    a * b输出结果20

    /

    a除以b

    a/b输出结果5.0

    //

    取整除-返回商的整数部分(向下取整)

    a//b输出结果5

    %

    取模-返回除法的余数

    a%b输出结果0

    **

    幂-返回x的y次幂

    a**b输出结果100

    //注意:

    如果a=10.0b=2.0;那么a//b的结果就为5.0

    //代码
    a=10.0
    b=2.0
    
    print("a+b=",a+b)
    print("a-b=",a-b)
    print("a*b=",a*b)
    print("a/b=",a/b)
    print("a//b=",a//b)
    print("a%b=",a%b)
    print("a**b=",a**b)
    
    //运行结果
    a+b= 12.0
    a-b= 8.0
    a*b= 20.0
    a/b= 5.0
    a//b= 5.0
    a%b= 0.0
    a**b= 100.0

    比较运算:

     赋值运算:

     //增量赋值

    egon_age=18
    for i in range(3):
        egon_age+=1
    print("三年后岁数",egon_age)

    //链式赋值

    #x=10
    #y=x
    #z=y
    z = y = x = 10 # 链式赋值(等于上面三行命令)
    print(x, y, z)
    print(id(x), id(y), id(z))

    //交叉赋值

    m=10
    n=20
    # print(m,n)
    # 交换值
    # temp=m
    # m=n
    # n=temp
    # print(m,n)
    
    m,n=n,m # 交叉赋值(等于上面注释的代码)
    print(m,n)

    //解压赋值

    //代码
    salaries=[33,22,11,55,44]
    a,b,c,*_=salaries   #取前三个值,*_中*表示除a,b,c的所有值,_表示占位符(约定俗成)
    print(a,b,c,abc)
    //执行结果
    33 22 11 [55, 44]
    
    //代码
    salaries=[33,22,11,55,44]
    *_,a,b,c=salaries  #取后三个值
    print(a,b,c)
    //执行结果
    11 55 44
    
    //代码
    salaries=[33,22,11,55,44]
    a,b,c,*_,m=salaries  #取前三个值和最后一个值
    print(a,b,c,m)
    //执行结果
    33 22 11 44

     逻辑运算:

    python短路运算

    print(10 and 12)  =>12

    print(True and 10 > 3 and 4 ) #4

    //连续多个and

    可以用and连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为False,则无需再往右判断,可以立即判定最终结果就为False,只有在所有条件的结果都为True的情况下,最终结果才为True。

    >>> 2 > 1 and 1 != 1 and True and 3 > 2 # 判断完第二个条件,就立即结束,得的最终结果为False
    False

    //连续多个or

    可以用or连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为True,则无需再往右判断,可以立即判定最终结果就为True,只有在所有条件的结果都为False的情况下,最终结果才为False

    >>> 2 > 1 or 1 != 1 or True or 3 > 2 # 判断完第一个条件,就立即结束,得的最终结果为True
    True

    //优先级not>and>or

    #1、三者的优先级关系:not>and>or,同一优先级默认从左往右计算。
    >>> 3>4 and 4>3 or 1==3 and 'x' == 'x' or 3 >3
    False
    
    #2、最好使用括号来区别优先级,其实意义与上面的一样
    '''
    原理为:
    (1) not的优先级最高,就是把紧跟其后的那个条件结果取反,所以not与紧跟其后的条件不可分割
    
    (2) 如果语句中全部是用and连接,或者全部用or连接,那么按照从左到右的顺序依次计算即可
    
    (3) 如果语句中既有and也有or,那么先用括号把and的左右两个条件给括起来,然后再进行运算
    '''
    >>> (3>4 and 4>3) or (1==3 and 'x' == 'x') or 3 >3
    False 
    
    #3、短路运算:逻辑运算的结果一旦可以确定,那么就以当前处计算到的值作为最终结果返回
    >>> 10 and 0 or '' and 0 or 'abc' or 'egon' == 'dsb' and 333 or 10 > 4
    我们用括号来明确一下优先级
    >>> (10 and 0) or ('' and 0) or 'abc' or ('egon' == 'dsb' and 333) or 10 > 4
    短路:       0      ''            'abc'                    
                假     假              真
    
    返回:                            'abc'
    
    #4、短路运算面试题:
    >>> 1 or 3
    1
    >>> 1 and 3
    3
    >>> 0 and 2 and 1
    0
    >>> 0 and 2 or 1
    1
    >>> 0 and 2 or 1 or 4
    1
    >>> 0 or False and 1
    False

    成员运算:

     身份运算:

     位运算:

    该运算符按二进制位对值进行操作

    1、与(&),按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

    2、或(|),按位或运算符:只要对应的两个二进位有一个为1时,结果位就为1

    3、异或(^),按位异或运算符:当两对应的二进位相异时,结果为1

    4、取反(~),按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1

    5、左位移(<<),运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0

    6、右位移(>>),把‘>>’左边的运算数的各二进制位全部右移若干位,>>右边的数字指定了移动的位数

    按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下,下表中变量 a 为 60,b 为 13,二进制格式如下:

    a = 0011 1100
    b = 0000 1101
    -----------------
    a&b = 0000 1100
    a|b = 0011 1101
    a^b = 0011 0001
    ~a = 1100 0011

    运算符优先级:

     优先级:not > and > or

  • 相关阅读:
    Hello Springboot
    Spring AOP
    代理模式
    Spring 面向注解开发
    Spring Bean 的配置
    IDEA 14 for Mac 提示要安装java 6的修改
    NAS DIY
    Maven Jetty SSL配置
    图书管理系统(jsp+nysql实现)
    互联网+XX项目技术架构
  • 原文地址:https://www.cnblogs.com/baicai37/p/12372097.html
Copyright © 2011-2022 走看看