变量与运算符
1、变量
变量类似名字,把一个数据赋值给一个变量,变量名尽量有意义、可读性强
例:
skill = ['新月打击','苍白之瀑']
1) 命名规则
① 数字、字母、下划线,但不能以数字开头
② 系统(保留)关键字不能作为变量名
③ 严格区分大小写
④ 变量本身没有类型
⑤ 两个单词组合的命名方式用 “_” 连接,不推荐用驼峰命名方式
2) 值类型与引用类型
例:
a = 1
b = a
a = 3
print(b)
1
a = [1,2,3,4,5]
b = a
a[0] = '1'
print(a)
['1', 2, 3, 4, 5]
print(b)
['1', 2, 3, 4, 5]
值类型(不可改变):int str tuple
引用类型(可变): list set dict
id():获取对象的内存地址
3) 列表的可变与元祖的不可变
append():在列表末尾添加新的对象
例:
a = [1,2,3]
print(id(a))
a[0] = '1'
print(id(a)) # 内存地址没有改变 list是可变的
a = (1,2,3)
# a[0] = '1' 会报错 tuple是不可变的
b = [1,2,3]
b.append(4)
print(b)
[1,2,3,4]
4) 运算符号
① 算术运算符
+
-
*
/
//:整除,返回商的整数部分(向下取整)
% :取模,返回除法的余数
** :幂
② 赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
% | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
③ 比较(关系)运算符
a = 10 ,b = 20
运算符 | 描述 | 实例 |
---|---|---|
== | 等于,比较对象是否相等 | (a == b) 返回 False |
!= | 不等于,比较两个对象是否不相等 | (a != b) 返回 True |
> | 大于,返回a是否大于b | (a > b) 返回 False |
< | 小于,返回a是否小于b | (a < b) 返回 True |
>= | 大于等于,返回a是否大于等于b | (a >= b) 返回 False |
<= | 小于等于,返回a是否小于等于b | (a <= b) 返回 True |
不是只有数字才能做比较运算,str list tuple…都可以
str之间的比较是比较ASCII,多个字符串之间的比较,是依次比较ASCII
④ 逻辑运算符
and 且、与 左右两边都为真时,返回真
or 或 左右两边有一个为真时,返回真
not 非 判断一个对象,为True时,返回False
本质:操作类型和返回类型都为bool
⑤ 成员运算符
in:如果在指定的序列中找到值返回True,否则返回False
not in:如果在指定的序列中没有找到值返回True,否则返回False
如果序列是dict的话,查找的是dict中的key,而不是value
例:
b = 'a'
print(b in {'c':1})
False
b = 1
print(b in {'c':1})
False
b = 'c'
print(b in {'c':1})
True
⑥ 身份运算符
is:比较两个对象的内存地址是否相同,类似id(m) == id(n),相同返回True,否则返回False
not is:比较两个对象的内存地址是否不相同,不相同返回True,否则返回False
⑦ 位运算符
把数字当做二进制进行运算
运算符 | 描述 |
---|---|
& | 按位与:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或:只要对应的二个二进位有一个为1时,结果位就为1 |
^ | 按位异或:当两对应的二进位相异时,结果为1 |
~ | 按位取反:把一个数据的每个二进制位取反,即把1变味0,0变为1 |
<< | 左移动:把一个数据的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃, 低位补0 |
>> | 右移动:把一个数据的各二进位全部右移若干位,由">>"右边的数指定移动的位数,低位丢弃, 高位补0 |
⑧ 如何判断变量的值、身份与类型
isinstance(m,n):判断对象的类型,m是需要判断的对象,n是判断的类型;n可以是一个元祖,里面放入想要判断的所有类型
对象的三个特征:id(身份)、value(值)、type(类型)
分别判断三个特征的方式:is、==、isinstance