zoukankan      html  css  js  c++  java
  • 2-Python3从入门到实战—基础之运算符

    Python从入门到实战系列——目录

    Python语言支持以下类型的运算符:

    • 算术运算符
    • 比较(关系)运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算符
    • 成员运算符
    • 身份运算符
    • 运算符优先级

    算术运算符

    • Python中算术运算符包含:+,-,*,/,%,**,//
    a = 10
    b = 5
    a + b  返回结果 15
    a - 5  返回结果 5
    a * b  返回结果 50
    a / b  返回结果 2.0			# / 总是返回浮点数
    a % b  返回结果 0			# % 表示a除以b取余数
    a ** b 返回结果 100000		# ** 表示 a 的 b 次方
    a // b 返回结果 2			# // 表示 a 除以 b 的商的整数部分
    10.0 // 5.0 返回结果 2
    

    比较运算符

    • Python中比较运算符包含:>,<,>=,<=,==,!=
    a = 10
    b = 5
    ( a > b )   返回结果    True
    ( a < b )   返回结果    False
    ( a >= b )  返回结果 	True
    ( a <= b )  返回结果 	False
    ( a == b )  返回结果 	False
    ( a != b )  返回结果    True
    

    赋值运算符

    • Python中赋值运算符包含:=,+=,-=,*=,/=,%=,**=,//=
    a = 10
    b = 20
    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
    

    逻辑运算符

    • Python中逻辑运算符包含:and,or,not
    • and: 布尔"与"; x and y 表示如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值;
    a = 10
    b = 20
    print( a and b )		# 输出:20
    
    • or: 布尔"或"; x or y 表示 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值;
    a = 10
    b = 20
    print( a or b )			# 输出:10
    
    • not: 布尔"非"; not x 表示如果 x 为 True,返回 False 。如果 x 为 False,它返回 True;
    a = 10
    b = 20
    print(not(a==10))		# 输出:False
    print(not(b==10))		# 输出:True
    

    位运算符

    • Python中位运算符包含:&,|,^,~,<<,>>;按位运算符是把数字看作二进制来进行计算的;
    • & (按位与运算符):参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0;
    a = 0b0011 1100
    b = 0b0000 1101
    a & b = 0000 1100
    
    • | (按位或运算符):只要对应的二个二进位有一个为1时,结果位就为1;
    a = 0b0011 1100
    b = 0b0000 1101
    a | b = 0011 1101
    
    • ^ (按位异或运算符):当两对应的二进位相异时,结果为1;
    a = 0b0011 1100
    b = 0b0000 1101
    a ^ b = 0011 0001
    
    • ~ (按位取反运算符):对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1;
    a = 0b0011 1100
    ~a = 1100 0011
    
    • << (左移动运算符):运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0;
    a = 0b0011 1100
    a << 2	# a 左移两位,即结果:1111 0000
    
    • “>>” (右移动运算符):把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数;
    a = 0b0011 1100
    a >> 2	# a 右移两位,即结果:0000 1111
    

    成员运算符

    • Python中成员运算符包含:in,not in;
    • in:如果在指定的序列中找到值返回 True,否则返回 False;
    a = 10
    list = [1, 2, 3, 4, 5 ];
    if ( a in list ):
        print ("变量 a 在列表中 list 中")
    else:
        print("变量 a 不在列表 list 中")
    
    • not in:如果在指定的序列中没有找到值返回 True,否则返回 False;
    a = 10
    list = [1, 2, 3, 4, 5 ];
    if ( a not in list ):
        print ("变量 a 不在列表中 list 中")
    else:
        print("变量 a 在列表 list 中")
    

    身份运算符

    • Python中身份运算符包含:is,is not;身份运算符用于比较两个对象的存储单元
    • is 判断两个标识符是不是引用自一个对象,x is y, 类似 id(x) == id(y);
    a = 20
    b = 20
    if ( a is b ):
        print (" a 和 b 有相同的标识")
    else:
        print (" a 和 b 没有相同的标识")
    if ( id(a) == id(b) ):
        print (" a 和 b 有相同的标识")
    else:
        print (" a 和 b 没有相同的标识")
    # 输出结果均为: a 和 b 有相同的标识
    # 修改 b 的值
    b = 30
    if ( a is b ):
        print (" a 和 b 有相同的标识")
    else:
        print (" a 和 b 没有相同的标识")
    # 输出结果: a 和 b 没有相同的标识
    
    • is not 判断两个标识符是不是引用自不同对象,x is not y , 类似 id(a) != id(b)
    a = 20
    b = 30
    if ( a is not b ):
        print (" a 和 b 没有相同的标识")
    else:
        print (" a 和 b 有相同的标识")
    if ( id(a) != id(b) ):
        print (" a 和 b 没有相同的标识")
    else:
        print (" a 和 b 有相同的标识")
    # 输出结果均为: a 和 b 没有相同的标识
    # 修改 b 的值
    b = 20
    if ( a is not b ):
        print (" a 和 b 没有相同的标识")
    else:
        print (" a 和 b 有相同的标识")
    # 输出结果: a 和 b 有相同的标识
    

    运算符优先级

    • 运算符优先级从高到底如下:
    **          指数 (最高优先级)
    ~ + -       按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
    * / % //    乘,除,取模和取整除
    + -	        加法减法
    >> <<       右移,左移运算符
    &           位 'AND'
    ^ |         位运算符
    <= < > >=   比较运算符
    <> == !=    等于运算符
    = %= /= //= -= += *= **=    赋值运算符
    is is not                   身份运算符
    in not in                   成员运算符
    not or and                  逻辑运算符
    
  • 相关阅读:
    hdu 1174
    计算几何模板
    又是一年博客记
    hdu 1225 Football Score
    与逆序数有关的
    hdu 2844 Coins
    hdu 1171 Big Event in HDU
    UVA Exponentiation
    UVA Summation of Four Primes
    Linux:设置alias永久生效
  • 原文地址:https://www.cnblogs.com/shen-hua/p/8408624.html
Copyright © 2011-2022 走看看