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


    本文链接:https://www.cnblogs.com/zyuanlbj/p/11910980.html


     算术运算符

    +   -   *   /   %   **   //

    示例:

    a=9
    b=2
    result = a * b
    print('乘法运算:',result)
    
    result = a / b
    print('除法运算:',result)
    
    b=3
    result = a ** b   #  b=2  8*8=64  8*8*8 =512   a的b次幂
    print('乘法运算:',result)
    
    b=2
    result = a // b   # 整除  9/2 =4.5  取整:4
    print('除法运算:',result)
    
    result = a%b  # 9%2= 1
    print('取余数运算:',result)

    赋值运算符

    =   -=   +=   *=   /=

    • 赋值运算符左边必须是变量。
    • 从右向左算。
    • 没有赋值表达式。
    • 所有赋值运算符优先级相同,赋值运算符优先级非常低,仅高于成员运算符和身份运算符、逻辑运算符。
    • 注意在复合赋值中。

    示例:

    # 1. =
    name = 'admin'
    # 将'admin'的值赋给 变量name 
    name1 = name
    print(id(name), name)
    print(id(name1), name1)
    
    name2 = name
    print(id(name2), name2)
    # id() 获取变量地址
    print(name == name1)  # 
    
    name1 = 'admin1'
    print(id(name1), name1)
    print(id(name), name)
    name = 'admin2'
    print(id(name), name)
    
    name3 = name
    print(id(name3), name3)
    
    # 扩展后的赋值符号  +=  -=  *=  /=  ...
    num = 8
    num += 5  # num = num + 5   此时+ 数学加号
    print(num)
    num -= 10  # num = num-10
    print('num=', num)
    
    a = 'abc'
    a += 'ff'  # 等价于: a = a +'ff'  此时'+'就是连接符  包含两个动作: 1. 连接  2.连接后的结果赋值
    print(a)
    
    # a -= 'kk'   # 不支持  
    # print('a=',a)

    关系运算符

    • >:大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False。
    • >=:大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False。
    • <:小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False。
    • <=:小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False。
    • ==:等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False。
    • !=:不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False。

    示例:

    n1 = int(input('请输入第一个数:'))
    n2 = int(input('请输入第二个数:'))
    # 判断n1 与 n2
    result = n1 > n2     # 结果False  True
    #  8 > 12   --->False
    print('n1>n2:',result)
    
    result = n1 == n2
    print('n1==n2:',result)
    
    m1='hello'
    m2='hello'
    result = m1==m2
    print('m1==m2:',result)
    
    username= input('输入用户名:')
    uname ='admin123'
    result = username==uname
    # result = username != uname   # 如果两者不相等则会返回True,相等则返回False
    print('用户名的验证结果是:',result)

    逻辑运算符

    逻辑运算符用于操作 bool 类型的变量、常量或表达式,逻辑运算的返回值也是 bool 值。

    • and:与,前后两个操作数必须都是 True 才返回 True;否则返回 False。
    • or:或,只要两个操作数中有一个是 True,就可以运回 True;否则返回 False;
    • not:非,只需要一个操作数,如果操作数为 True,则返回 False;如果操作数为 False,则返回 True。

    示例:

    # and   or   not
    # and  逻辑与  
    # or   逻辑或
    # not  逻辑非
    # 逻辑运算符的运算结果也是返回True  False
    n1= 8
    n2 =5
    n3=3
    result = n1>=(n2+n3) and n1>n2 
    n2=n2+n3
    # n2--->8
    result = n1>=n2 and n1==n3
    #         True  and  False  ---->False
    n4=(n1+n3)-n2  # n4=3
    result = n4<n1 and (n4+n3)>n2  # False
    
    # 判断是否存在用户
    username = ''
    email ='63478364@qq.com'    
    result = username=='admin123' or email =='63478364@qq.com'
           #   False             or          True   ---->True
    print('or ---->',result)
    
    a=2
    b=5
    c=7
    result = (a+b)!=c or c>a
    print('or--222-->:',result) 
    
    flag = False
    result = not flag    # not就是取反
    print('not ---->:',result)

    位运算符

    位运算符通常在图形、图像处理和创建设备驱动等底层开发中使用。使用位运算符可以直接操作数值的原始 bit 位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也非常有效。

    反码:正码取反;补码:反码加1;最高位表示符号位。

    • &:按位与。
    • |:按位或。
    • ^:按位异或。
    • ~:按位取反。
    • <<:左位移运算符(补0)。
    • >>:右位移运算符(补符号位)。

    示例:

    a =3
    print(bin(a))   # 0b 11 
    a=13
    print(bin(a))
    b = 0b10111   # 0b  二进制   二进制的表示: 0b1000101
    print(int(b))
    c=-8  #  -0b1000       0000  1000
    print(bin(c)) 
    c= 0o6430   # 0o 开头的都是八进制   里面的数字不能超过8
    print(int(c))
    # 开头表示0x  0-9 a-f 
    # 应用: FFFFFF   000000  FF0000   00FF00
    d=0x9ab16
    print(int(d))

    三目运算符

    Python 可通过 if 语句来实现三目运算符的功能,因此可以近似地把这种if语句当成三目运算符。作为三目运算符的 if 语句的语法格式如下:

    True_statements if expression else False_statements

    三目运算符的规则是:先对逻辑表达式 expression 求值,如果逻辑表达式返回 True,则执行并返回 True_statements 的值;如果逻辑表达式返回 False,则执行并返回False_statements 的值。

    # 格式:表达式 ? 真 : 假
    result = (8>10)?'':''
    print(result)
    # python的格式: 结果  if 表达式 else 结果
    a=6
    b=5
    result = (a+b) if a<b else (b-a)
    '''
     判断表达式是True还是False
     如果是True则 将if前面的内容进行运算,并将结果赋值成result
     如果是False则将else后面的内容运算结果,并将结果赋值成result
    '''
    print(result)

    身份运算符

    • is: 判断两个标识符是否引用自同一个实体【对象】,比较的是两个对象的id是否一样,如果相同为真,否则为假。
    • is not:判断两个标识符是不是引用自不同的实体【对象】如果两个对象的id不同结果为真,否则为假。
    • id()函数获取实体的id(地址)。

    注意:is和==的区别

    • is用于判断两个变量引用实体是否为同一个【id】
    • ==用于判断两个变量的值是否相同,但id不一定相同

    成员运算符

    主要应用在序列中。

    in:如果在指定的序列中找到指定的值,则返回True,否则返回False。

    not in:如果在指定的序列中未找到指定的值,则返回True,否则返回False。

    运算符优先级

    运算符 描述
    ** 指数(最高优先级)
    ~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
    * / % // 乘,除,取模和取整除
    + - 加法减法
    >> << 右移,左移运算符
    & 位与
    ^ | 位异或,或
    <= < > >= 比较运算符
    <> == != 等于运算符
    Life is short, you neeed python.
  • 相关阅读:
    nohup npm start &启动之后关闭终端程序没有后台运行
    C++标准库之string返回值研究
    Apache Thrift的C++多线程编程定式
    实战C++对象模型之成员函数调用
    std::string的拷贝赋值研究
    REdis AOF文件结构分析
    使用Linux自带日志滚动工具logrotate滚动redis日志示例
    源码分析MySQL mysql_real_query函数
    源码解读Linux的limits.conf文件
    C++中的return和exit区别
  • 原文地址:https://www.cnblogs.com/zyuanlbj/p/11910980.html
Copyright © 2011-2022 走看看