赋值与变量
>>> A = [1,2,3,4,5,6]
>>> print(A)
[1, 2, 3, 4, 5, 6]
>>> B = [1,2,3]
>>> A*3 + B + A
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 5, 6]
>>>
变量命名的可读性要强
-
变量命名规则
-
使用字母,数字,下划线组合,但是首字母不能使用数字
-
系统关键字(保留关键字) 不能用在变量名中
-
变量名区分大小写
-
变量没有类型限制
>>> a = 1 >>> a = '1' >>> a = {1,2,3} >>> a = [1,2,3] >>>
-
-
非系统关键保留字,但是又经常被用作方法的,尽量不要以此命名
>>> type = 1
>>> type(1)
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
type(1)
TypeError: 'int' object is not callable
>>> 1(1)
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
1(1)
TypeError: 'int' object is not callable
>>> print(type)
1
>>>
- 值类型与引用类型
- int str tuple值类型(不可改变)
- list set dict引用类型(可变)
>>> a = 1
>>> b = a
>>> print(b)
1
>>> a = [1,2,3]
>>> b=a
>>> a[0] = '1'
>>> print(b)
['1', 2, 3]
>>>
字符串是不可变得,但是使用id(b)可以看出内存地址发生了变化,创建了一个新的字符串
>>> a = 'hello'
>>> a = a + 'python'
>>> print(a)
hellopython
>>> b = 'hello'
>>> id(b)
2294861621744
>>> b = b + 'python'
>>> id(b)
2294861553200
>>>
>>> 'python'[0]
'p'
>>> 'python'[0] = 'o'
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
'python'[0] = 'o'
TypeError: 'str' object does not support item assignment
>>>
列表list的可变与元祖tuple的不可变
>>> a = [1,2,3]
>>> id(a)
2294821051264
>>> hex(id(a))
'0x2164dfe5b80'
>>> a[0] = '1'
>>> id(a)
2294821051264
>>>
>>> a = (1,2,3)
>>> a[0] = '1'
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
a[0] = '1'
TypeError: 'tuple' object does not support item assignment
>>>
>>> b = [1,2,3]
>>> b.append(4)
>>> print(b)
[1, 2, 3, 4]
>>> c = (1,2,3)
>>> c.append(4)
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
c.append(4)
AttributeError: 'tuple' object has no attribute 'append'
>>>
- 二维三维
>>> a = (1,2,3,[1,2,3])
>>> a[2]
3
>>> a[3][2]
3
>>> b = (1,2,3,[1,2,['a','b','c']])
>>> b[3][2][2]
'c'
>>>
//修改元祖中的列表中的元素
>>> a[3][2] = '4'
>>> print(a)
(1, 2, 3, [1, 2, '4'])
>>>
运算符
- 算术运算符
+,-,*,/,//,%,**
>>> 'hello' + 'world'
'helloworld'
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> 3-1
2
>>> 3/2 除法
1.5
>>> 3//2 整除
1
>>> 5%2 取余
1
>>> 2**2 平方
4
>>> 2**5
32
>>>
- 赋值运算符
= ,+=,-=,*=,/=,%=,//=,**=
>>> c = 1
>>> print(c)
1
>>> c+=1
>>> print(c)
2
>>> c-=1
>>> print(c)
1
>>> c*=2
>>> print(c)
2
>>>
/= %= //= **=
- 比较运算符
==,!=,>,<,>=,<=
>>> 1==1
True
>>> 1>1
False
>>> 1<1
False
>>> 1>=1
True
>>> 1<=1
True
>>> 1!=1
False
>>>
>>> b=1
>>> b+=b>=1
>>> print(b)
2
>>> print(b>=1)
True
>>> b=b+True
>>> print(b)
3
>>>
不只是数字才能做比较运算
>>> 'a'>'b' 比较acii码
False
>>> ord('a')
97
>>> ord('b')
98
>>> 'abc'<'abd' 会单独把a与a比较 b与b比较 c与d比较
True
>>>
>>> [1,2,3]<[2,3,4]
True
>>> (1,2,3)<(1,3,2)
True
>>>
- 逻辑运算符
and or not
>>> True and True
True
>>> True and False
False
>>> True or False
True
>>> False or False
False
>>> not False
True
>>> not True
False
>>> not not True
True
>>> 1 and 1
1
>>> 'a' and 'b'
'b'
-
对于整型 0被认为是False,非0被认为是True
-
对于字符串,空字符串False
-
对于列表,空列表被认为False
-
成员运算符
in not in
一种元素是否在另一种元素里
>>> a =1
>>> a in [1,2,3,4,5]
True
>>> a in (1,2,3,4,5)
True
>>> a in {1,2,3,4,5}
True
>>>
//字典的成员运算符
>>> b = 'a'
>>> b in {'c',1}
False
>>> b = 1
>>> b in {'c',1}
True
>>> b = 'c'
>>> b in {'c',1}
True
>>>
- 身份运算符
is not is
>>> a = 1
>>> b = 1.0
>>> a == b
True
>>> a is b
False
>>>
>>> id(a)
2504316315952
>>> id(b)
2504351047216
>>>
==比较的是值是否相等,is不是比较值相等,is比较的是两个变量的身份是否相等
>>> a = {1,2,3} //集合是无序的
>>> b = {2,1,3}
>>> id(a)
2504352345440
>>> id(b)
2504352344544
>>> c = (1,2,3) //元组是有序的
>>> d = (2,1,3)
>>> id(c)
2504352642432
>>> id(d)
2504352643008
>>> a == b
True
>>> a is b
False
>>> c == d
False
>>> c is d
False
>>>
类型的判断type
>>> a = 'hello'
>>> type(a) == int
False
>>> type(a) == str
True
>>> isinstance(a,str)
True
>>> isinstance(a,int)
False
>>> isinstance(a,(int,str,float))
True
>>>
对象的三个特征 id value type,分别使用is、 == 、isinstance判断
- 位运算符
&(按位与) |(按位或) ^(按位异或) ~(按位取反)<<(左移动) >>(右移动)
当做二进制数运算