Python 中的变量及运算
变量赋值操作(赋值符号 =
)
# 未使用变量
[1,2,3,4]*3+[1,2,3]+[1,2,3,4]
# [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4]
# 变量
a = [1,2,3,4] # 赋值
b = [1,2,3]
a*3+b+a # 运算
Python变量名对大小写敏感,给变量起名一定要有意义,增强可读性,例如 skill,goodsId...
变量名可以使用数字,字母,下划线组成,首字母不能是数字。
_config ='config info"
user_info = 'user'
也不能用系统保留字作为变量名.
python 中的变量无需申明变量类型
float a = 10.0
a = 10.0
注意以下现象:
a = 1
b = a
a = 3
print(b)
# 1 b没有随着a改变
a = [1,2,3]
b = a
a[0] = 6
print(b)
# [6,2,3] b 随着a变化
值类型和引用类型
值类型不可变,引用类型可变
int str tuple是值类型 list set dict是引用类型
a = "hello"
id(a) = 6522010 # 内容地址
a = a + "world"
id(a) = 6522966 # 内存地址
print(a) # hello world
列表修改
b = [1,2,3] # 定义列表
b.append(4)
print(b) # [1,2,3,4] 可动态改变
元组不可追加,不可修改
(1,2,3) # 元组
a[2] = 1 # 报错 !!!
运算符
1.算数
算数运算符 | ||||||
---|---|---|---|---|---|---|
+ | - | * | / | // | % | ** |
求和 | 差 | 乘积 | 除 | 整除 | 求余 | 乘方 |
!!! Python 中没有自增++ 和自减 --运算符
2.赋值
赋值运算符 | ||||||
---|---|---|---|---|---|---|
= | += | *= | /= | %= | **= | //= |
赋值 | 先求和再赋值 | 先求积再赋值 | 先除再赋值 | 先求余再赋值 | 先乘方再赋值 | 先整除再赋值知 |
3.比较
比较运算符 | ||||||
---|---|---|---|---|---|---|
== | != | > | >= | < | <= | |
等于 | 不等 | 大于 | 大于等于 | 小于 | 小于等于 |
以下代码需要重点理解:
'abc' < 'abd' # ASII码逐个比较 a < a? b < b ? c < d? 序列特性
[1,2,3] < [1,2,4] # True
(1,2,3) > (1,2,4) # False
(1,2,3) < (2,1,3) # True 得到结果即返回
# 集合,字典同样是适用
4.逻辑
逻辑运算符 | ||
---|---|---|
and | or | not |
两个为真返回真 | 一个为真返回真 | not True = False |
int float 0
为 False
, 非0
均为True
str''
为False
, '0'
为True
list[]
为 False
5.成员运算符
成员运算符 | |
---|---|
in | 是否在 1 in [1,2,3,4] 返回 True |
not in | 是否不在 6 not in (1,3,4) True |
成员运算符支持所有序列,包括字符串,元组,列表,集合,字典
a = 'key'
a in {'key':1} # True 成员运算符在字典中仅适用于key 查询
a in {'1':'key'} # False
'a' in 'action' # True
5.身份运算符
身份运算符 | |
---|---|
is | 是 |
not is | 不是 |
a = 1
b = 1.0
a == b # True 关系运算符对值比较
a is b /# False 身份运算,比较内存地址
{2,1,3} == {1,2,3} # 集合 True 无序列表元素顺序不影响值
(1,2,3) == (2,1,3) # 元组 False 元组属于有序,会
关系运算符对值比较,身份运算比较内存地址;
变量类型判断
a = 1
isinstance(a,(int,float,str))
对象的三个特征: id、值、类型
5.位运算符
位运算符 | |||||
---|---|---|---|---|---|
& | Ι | ^ | ~ | << | >> |
按位与 | 按位或 | 按位异或 | 按位取反 | 左移动 | 右移动 |
按位与理解
把数字转成2进制后每一位进行比较,如果相同则返回1,不同则返回0
# 2: 0b10
# 3: 0b11
2 & 3
# 0b10
# 0b11
# 0b10
# output:2 0b10
2 | 3
# 0b10
# 0b11
# 0b11
# output: 3 0b11