一、量
Python中没有明确区分变量常量的定义,一般默认全大写拼写的变量名为常量(只是用于给编写者的一个提示)。
二、数据类型
Python中基础数据类型大体分为:数字(整型(整型与长整型在Python3中无区别),浮点型,布尔型,复数),字符串(字符),列表,元祖,集合,字典六种类型。
其中数字,字符串,元祖为不可变数据类型;列表,集合,字典为可变数据类型。
不可变数据类型:不可变数据类型的优点就是内存中不管有多少个引用,相同的对象只占用了一块内存,但是它的缺点就是当需要对变量进行运算从而改变变量引用的对象的值时,由于是不可变的数据类型,所以必须创建新的对象,这样就会使得一次次的改变创建了一个个新的对象,不过不再使用的内存会被垃圾回收器回收。
1 >>> x = 1
2 >>> id(x)
3 31106520
4 >>> y = 1
5 >>> id(y)
6 31106520
7 >>> x = 2
8 >>> id(x)
9 31106508
10 >>> y = 2
11 >>> id(y)
12 31106508
13 >>> z = y
14 >>> id(z)
15 31106508
可变数据类型:可变数据类型是允许同一对象的内容,即值可以变化,但是地址是不会变化的。但是需要注意一点,对可变数据类型的操作不能是直接进行新的赋值操作,比如说a = [1, 2, 3, 4, 5, 6],这样的操作就不是改变值了,而是新建了一个新的对象,这里的可变只是对于类似于append、+=等这种操作。
1 >>> a = [1, 2]
2 >>> id(a)
3 35554048
4 >>> a = [1, 2]
5 >>> id(a)
6 35522880
7 >>> a.append(3)
8 >>> id(a)
9 35522880
10 >>> a += [4]
11 >>> id(a)
12 35522880
13 >>> a
14 [1, 2, 3, 4]
三、运算符
数字运算符:+,-,*,/,//(取整除),%(余除),**(方)
优先级:**,(*、/、%、//)同级,(+、-)同级
1 >>> a=12
2 >>> b=5
3 >>> print(a+b)
4 17
5 >>> print(a-b)
6 7
7 >>> print(a*b)
8 60
9 >>> print(a/b)
10 2.4
11 >>> print(a**b)
12 248832
13 >>> print(a//b)
14 2
15 >>> print(a%b)
16 2
逻辑运算符:not(非),and(与),or(或),xor(异或)
优先级:not,and,(or、xor)同级
1 >>>a=1
2 >>>b=0
3 >>>a and b
4 0
5 >>>a or b
6 1
7 >>>not a
8 False
9 >>>not b
10 True
位运算符:&(同and),|(同or),~(同not),^(同xor),>>(右移),<<(左移)
优先级:(<<、>>)同级,&,~,^,|
1 >>> a=10 #a=0000 1010
2 >>> b=8 #b=0000 1000
3 >>> a & b #0000 1000
4 8
5 >>> a | b #0000 1010
6 10
7 >>> a ^ b #0000 0010
8 2
9 >>> c=~a #a的补码 = 原码 = 0000 1010 (0000 1010)取反 (1111 0101)
10 >>> print(c) #(1111 0101)取反(0000 1010)
11 -11 #(0000 1010)+ (0000 0001) = (0000 1011) (前面加上负号)
12 >>> c=a>>2 #a=0000 1001
13 >>> print(c) #c=0000 0010
14 2
15 >>> c=a<<2 #c=0010 1000
16 >>> print(c)
17 40
成员检测:in,not in
优先级:同级
1 >>>a=5
2 >>>b=3
3 >>>list=[1,2,3]
4 >>>a in list
5 False
6 >>>a not in list
7 True
8 >>>b is list
9 True
10 >>>b not is list
11 False
身份检测:is, is not
优先级:同级
1 >>>a=10
2 >>>b=10
3 >>>c=20
4 >>>a is b
5 True
6 >>>a is not b
7 False
8 >>>a is c
9 True
10 >>>a is not c
11 False