码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础--运算符和表达式

时间:2021-05-23 23:49:33      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:container   end   one   nbsp   不同   head   返回   instance   地址   

运算符

  • 表达式:表达式是操作符和值的结合。如:2+3,2,3都是值,而+是操作符。

    • 数字表达式:1,2,3

    • 字符表达式:‘a‘,‘aaa‘

    • 运算表达式:1+2,1*2

print(1)
print(‘aa‘)
print(1+2)

算数运算符

  • +

    • 加法运算。

    • 字符串,列表,元组拼接。

    print("加法运算:",4+5)
    print("字符串连接:","str"+"ing")
    print("列表拼接:",[1,2,3]+[4,5,6])
    print("元组拼接:",(1,2,3)+(4,5,6))
  • -:减法运算。

    print("减法运算:",4-6)
  • *

    • 乘法运算。

    • 字符串,列表,元组重复。

    print("乘法运算:",4*6)
    print("字符串重复:","123"*2)
    print("列表重复:",[1,2]*2)
    print("元组重复:",(1,)*2)
  • /:除法运算,得到精确数值。

  • //:除法运算,向下取整。

    print("除法运算:",4/6)# 结果为0.6e-16
    print("除法运算:",4//6)# 结果为0
  • %:取模运算,得到余数。

    print("取模运算:",4%6)
  • **:乘方运算。

    print("乘方运算:",3**2)

     

赋值运算符

  • =:赋值运算,把=右边的赋给左边。

  • +=-=*=/=//=%=**=

    a=2
    print(a)
    a+=2
    print("a=a+2:",a)
    a-=2
    print("a=a-2:",a)
    a*=2
    print("a=a*2:",a)
    a/=2
    print("a=a/2:",a)
    a//=2
    print("a=a//2:",a)
    a%=2
    print("a=a%2:",a)
    a**=2
    print("a=a**2:",a)

比较运算符

  • ==:比较两个变量是否相等,相等为True,不等为False

    a = [1,2,3,4,5,6]
    b =list(set(tuple({1,2,3,4,5,6})))
    print("a ? b",a==b)
  • ><>=<=!=

逻辑运算符

  • 0,‘ ‘," ",[],(),{},None:在布尔上下文中为,其余任何东西都为真。

  • Python逻辑判断,从左往右解析。

  • 逻辑运算符作用:用来判断上下文。

a and b

(上文:表列)a and b(下文:表行)真(True)假(0|False)
真(True) 结果返回b 结果返回b
假(0|False) 结果返回a 结果返回a
  • 当a为真,b为真,and前后都为真,则返回下文b的值;

  • 当a,b中有一个为真,一个为假,则返回为假的值;

  • 当a,b都为假,则返回上文a的值。

# 0,False,空格" ",空元组(),空列表[],空集合|字典{},None为假,其他为真
print("a=True,b=True:",True and True,1 and 3)
print("a=True,b=False:",3 and 0)
print("a=False,b=True:",0 and ‘ss‘)
print("a=False,b=False:",False and ())

总结:and:如果a和b都为真,就返回b的值;如果a和b一真一假,返回假的值;都为假,返回a的值。

a or b

(上文:表列)a or b(下文:表行)真(True)假(0|False)
真(True) 结果返回a 结果返回a
假(0|False) 结果返回b 结果返回b
  • 当a为真,b为真,or前后都为真,则返回上文a的值;

  • 当a,b中有一个为真,一个为假,则返回为真的值;

  • 当a,b都为假,则返回下文b的值。

# 0,False,空格" ",空元组(),空列表[],空集合|字典{},None为假,其他为真
print("a=True,b=True:",True or True,1 or 3)
print("a=True,b=False:",3 or 0)
print("a=False,b=True:",0 or ‘ss‘)
print("a=False,b=False:",0 or ())

总结:or:如果a和b都为真,就返回a的值;如果a和b一真一假,返回真的值;都为假,返回b的值。

位运算符

  • 位运算:首先把需要位运算的数值---->二进制数值,然后进行位运算。

  • &:按位与。两个二进制数对应位都为1,结果位才为1;否则为0。

  • |:按位或。两个二进制数对应位有一个为1,结果位就为1;其余为0。

  • ~:按位非。一个二进制数对应位为0,结果位就为1;对应位为1,结果位为0。

  • ^:按位异或。两个二进制数对应位相同,结果位为0;对应位不同,结果位为1。

  • <<:按位左移。按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位补0。

    • 左移:在数字没有溢出的情况下,左移几位就是这个数乘以2的几次方。

  • >>:按位右移。按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补符号位,即正数补0,负数补1。

    • 右移:在数字没有溢出的情况下,右移几位就是这个数除以2的几次方。

  • 进制转换

    • 运算:

      • 十进制---->二进制:变成2的n次方,2的n次方(10进制)--->1 0000000000000000(2进制),此时n是几,0就有几个。

        • 4(10) = 2*2(10) =2**2(10)=100(2)===>即4(10)==100(2)

        • 12(10)=8(10)+4(10)=2**3(10)+2**2(10)=1100(2)

      • 二进制---->十进制:

        • 1100(2):

          • 1100(2)===>n=4;1100(2)=1000+100=1*2**3+1*2**2+0*2**1+0*2**0=8+4+0+0=12(10)

      • n进制----->十进制:

        • 1100(n):

          • 1100(n)====>n=4;1100(n)=1000+100+1*n**3+1*n**2+0*n**1+0*n**0=n**3+n**2(10)

    • 函数:

      • 十进制---->二进制:bin(n),去掉0b前缀。

      • 十进制---->八进制:oct(n),去掉0o前缀。

      • 十进制---->十六进制:hex(n),去掉0x前缀。

      • i进制----->十进制:int(n,base=i)

    a = 4
    b = 8
    print(bin(a),bin(b))
    print("&:",a&b)
    print("|:",a|b)
    print("~:",~a,~b)
    print("^:",a^b)
    print(">>:",b>>a)
    print("<<:",b<<a)

成员操作符

  • in:包含于列表,元组,字典等容器。

  • not in:不包含于列表,元组,字典等容器。

a = [1,2,3,4,5]
b = {"name":"xwg",2:3}
c = (1,)
d = {1,2,3}
print("in:",1 in a,1 in b,1 in c,1 in d)
print("not in:",0 not in a,0 not in b,0 not in c,0 not in d)

条件操作符

  • is:是。

  • is not:不是。

a = [1,2,3,4,5]
b = {"name":"xwg",2:3}
c = (1,)
d = {1,2,3}
print("is:",1 is a[0],1 is b[2],1 is c[0],1 is d)
print("is not:",0 is not a,0 is not b,0 is not c,0 is not d)
  • 字典只能访问存在的索引。

  • 集合不能使用索引访问。

isinstance

  • isinstance(obj, class_or_tuple):判断是否是对应类型,是返回True,否则返回False。

    • 参数1:需要判断类型的对象。

    • 参数2:类型:str,tuple,list,set,dict,object...

    print("string is str?",isinstance(‘string ‘,str))
    print("tuple is tuple?",isinstance((1,),tuple))
    print("list is list?",isinstance([1,3],list))
    print("set is set?",isinstance({1},set))
    print("dict is dict?",isinstance({1:1},dict))
    print("string is object?",isinstance(‘string‘,object))

type

  • type(obj):查询对象的类

id

  • id(obj):返回对象的引用地址

Python基础--运算符和表达式

标签:container   end   one   nbsp   不同   head   返回   instance   地址   

原文地址:https://www.cnblogs.com/bright-future/p/14728855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!