2.2.2Python的量,数据类型,运算符

总目录:https://www.jianshu.com/p/e406a9bc93a9

Python - 子目录:https://www.jianshu.com/p/50b432cb9460

一、量

  Python中没有明确区分变量常量的定义,一般默认全大写拼写的变量名为常量(只是用于给编写者的一个提示)。

二、数据类型

  Python中基础数据类型大体分为:数字(整型(整型与长整型在Python3中无区别),浮点型,布尔型,复数),字符串(字符),列表,元组,集合,字典六种类型。

  其中数字,字符串,元组为不可变数据类型;列表,集合,字典为可变数据类型。


  不可变数据类型:不可变数据类型的优点就是内存中不管有多少个引用,相同的对象只占用了一块内存,但是它的缺点就是当需要对变量进行运算从而改变变量引用的对象的值时,由于是不可变的数据类型,所以必须创建新的对象,这样就会使得一次次的改变创建了一个个新的对象,不过不再使用的内存会被垃圾回收器回收。

>>> x = 1

>>>id(x)

31106520

>>> y = 1

>>>id(y)

31106520

>>> x = 2

>>>id(x)

31106508

>>> y = 2

>>>id(y)

31106508

>>> z =y

>>>id(z)

31106508


  可变数据类型:可变数据类型是允许同一对象的内容,即值可以变化,但是地址是不会变化的。但是需要注意一点,对可变数据类型的操作不能是直接进行新的赋值操作,比如说a = [1, 2, 3, 4, 5, 6],这样的操作就不是改变值了,而是新建了一个新的对象,这里的可变只是对于类似于append、+=等这种操作。

>>> a = [1, 2]

>>>id(a)

35554048

>>> a = [1, 2]

>>>id(a)

35522880

>>> a.append(3)

>>>id(a)

35522880

>>> a += [4]

>>>id(a)

35522880

>>>a

[1, 2, 3, 4]

三、运算符

  数字运算符:+,-,*,/,//(取整除),%(余除),**(方)

    优先级:**,(*、/、%、//)同级,(+、-)同级

>>> a=12

>>> b=5

>>>print(a+b)

17

>>>print(a-b)

7

>>>print(a*b)

60

>>>print(a/b)

2.4

>>>print(a**b)

248832

>>>print(a//b)

2

>>>print(a%b)

2

  逻辑运算符:not(非),and(与),or(或),xor(异或)

    优先级:not,and,(or、xor)同级

>>>a=1

>>>b=0

>>>a and b

0

>>>a or b

1

>>>not a

False

>>>not b

True

比较运算符:==(等于),!=(不等于),>(大于),<(小于),>=(大于等于),<=(小于等于)

    优先级:同级

>>> a=7

>>> b=5

>>> c=5

>>>print(b==c)

True

>>>print(b!=c)

False

>>>print(a>b)

True

>>>print(a

False

>>>print(a>=b)

True

>>>print(b<=c)

True


  位运算符:&(同and),|(同or),~(同not),^(同xor),>>(右移),<<(左移)

    优先级:(<<、>>)同级,&,~,^,|

>>> a=10          #a=0000 1010

>>> b=8            #b=0000 1000

>>> a & b          #0000 1000

8

>>> a | b          #0000 1010

10

>>> a ^ b          #0000 0010

2

>>> c=~a          #  a的反码的补码 (0000 1010)取反 (1111 0101)

>>>print(c)        #(1111 0101)取补(0000 1011)

-11                    # -0000 1011(前面加上负号)   可以理解为  -(a+1)

>>> c=a>>2      #a=0000 1001

>>>print(c)        #c=0000 0010

2

>>> c=a<<2      #c=0010 1000

>>>print(c)

40

  成员检测:in,not in 

    优先级:同级

>>>a=5

>>>b=3

>>>list=[1,2,3]

>>>a in list

False

>>>a not in list

True

>>>b is list

True

>>>b not in list

False

  身份检测:is, is not

    优先级:同级

>>>a=10

>>>b=10

>>>c=20

>>>a is b

True

>>>a is not b

False

>>>a is c

True

>>>a is not c

False

你可能感兴趣的:(2.2.2Python的量,数据类型,运算符)