变量与运算符
变量
定义一个变量
a = [1,2,3,4,5,6]print(a) # [1,2,3,4,5,6]
变量命名要求:
- 首字母不能是数字
- 只能包含字符数字下划线
- 不能是关键字
type 不是关键字,可以做变量名,但是不建议使用。
变量名区分大小写。
关于列表
a = 1b = aa = 3print(b) # 1a = [1,2,3,4,5]b = aa[0] = '1'print(a) # ['1',2,3,4,5]print(b) # ['1',2,3,4,5]
int, str, tuple 是值类型(不可改变)
list, set, dict 是引用类型(可变)
a = 'Hello'a = a + ' Python'print(a) # Hello Python
id(): 显示内存地址
b = 'hello'id(b) # 49675488b = b + ' python'id(b) # 49748392# 内存地址改变
字符串不可改变
'python'[0] # p'python'[0] = 'a' # 报错, 不可改变
关于 type
type = 1 # 此时,type 代表 1type(1) # 报错
关于tuple list
list
a = [1,2,3]id(a)a[0] = [6]id(a) # 地址不变b = [1,2,3]b.append(4)print(b) # [1,2,3,4]
tuple
a = (1,2,3)a[0] = '6' # 报错c = (1,2,3)c.append(4) # 报错
元组中列表的内容可以修改
a = (1,2,[3,4])a[2][0] = 6print(a) # (1,2,[6,4])
运算符
+, -, *, /, //, %,
3 // 2 # 1,结果为整数3**2 # 3 的平方3**3 # 3 的三次方// 赋值=+=-+//=**/
Bool
==>>=<<=!=
布尔值相加
b = 1b += True # 2
list, tuple 也可以比较
[1,2,3] < [1,3,2] # True(1,2,3) < (1,3,2) # True
逻辑运算符
and: 两个都为真才为真
or: 有一个为真即为真
not: not False: 真,返回相反的 bool 值
True and True # TrueFalse or False # Truenot False # True
相关运算
1 and 2 # 2, 都为真,返回第二个'' and 'b' # '', 有一个为假,返回为假的元素0 and '' # 0, 都为假返回第一个元素'a' or 'b' # 'a', 都为真,返回第一个元素师0 or 1 # 1, 有一个为真,返回为真的元素1 or 0 # 1, 有一个为真,返回为真的元素not 'a' # False
空的字符串,列表,set,dict 为 False.
成员运算符
in. not in
返回 bool 值
a = 1a in [1,2,3] # Truea not in [2,3,4] # True
列表,集合,元组都可以
字典
a = 'b'c = { 'b':1}a in c # True# a 包含在 c 的键中,返回 True
身份运算符
is, not is
返回结果为 bool 值
is 不是比较值相等,is 比较的是两个变量的身份是否相等(内存地址)
not is 身份是否不等
a = 1b = 1.0a == b # Truea is b # Falsea = 1b = 1a is b # Truea = {1,2,3}b = {1,3,2}a == b # Truea is b # False# 集合是无序的,顺序不影响# a b 地址不同a = (1,2,3)b = (1,3,2)a == b # Falsea is b # False# 元素属于序列,是有序的a = [1,2,3]b = [1,2,3]a == b # Truea is b # Falsea = [1,2]b = [2,1]a == b # Falsea is b # False
判断字符串类型:isinstance()
a = 1isinstance(a,int) # Trueisinstance(a,(int,str)) # True# 第二个参数只能为元组,[],{} 会报错
位运算符
& # 按位与| # 按位或^ # 按位异或~ # …………
&
# 二进制对应位置都为 1 为 1 否则为 02: 1 03: 1 1&: 1 0
|
# 二进制对应位置只要有一个为 1 就为 1 都为0 则为 02: 1 03: 1 1|: 1 1