一、变量:名字
1.变量的定义:
>>> A = [1,2,3,4,5,6]
>>> print(A)
[1, 2, 3, 4, 5, 6]
=叫赋值符号
变量名要有意义,要见名知意
>>> skill = ['新月打击','苍白之瀑']
2.变量的命名规则
变量只能由字母、数字、下划线组成
首字母不能是数字
python系统中的关键字不能用在变量名中
变量名区分大小写
python中变量不需要声明其类型(python的动态性)
3.变量的用法
>>> a = 1
>>> b = a
>>> a = 3
>>> print(b)
1
>>> a = [1,2,3]
>>> b = a
>>> a[0] = '1'
>>> print(b)
['1', 2, 3]
上述示例为什么会出现那样的结果???
根本原因在于 int叫做值类型,list是引用类型
值类型(不可变):str,tuple,int 引用类型( 可变):list,set,dict
>>> a = 'hello'
>>> a = a + 'python'
>>> print(a)
hellopython
既然str是不可变类型,为什么不报错????
这里我们使用id()函数来看一下变量的地址
>>> b = 'hello'
>>> id(b)
54632832
>>> b = b + 'python'
>>> id(b)
15846600
发现b的地址发生了改变说明是生成了新的字符串
>>> a = [1,2,3]
>>> id(a)
57448768
>>> a[0] = '1'
>>> id(a)
57448768
小知识:向列表中追加元素
>>> b = [1,2,3]
>>> b.append(4)
>>> print(b)
[1, 2, 3, 4]
但是元组没有这样的方法。
小知识:访问二维列表的方法
>>> a = [1,2,3,4,[5,6,7]]
>>> a[4][0]
5
二、运算符号
1.算术运算符:
+,-,*,/(除),//(整除),%(取余),**(次方)
>>> 2**5
32
>>> 2**6
64
2.赋值运算符:
=,+=,*=,/=,%=,**=,//=
先做运算再赋值
3.比较(关系)运算符
并不只限于数字
==,!=,>,<,>=,<=
4.逻辑运算符
and,or,not
or 的返回类型是 True 和 False
and 和 or 视情况而定
5.成员运算符
字符串,列表,元组,集合,字典都可以
字典的成员运算只针对key
一个元素是否在一组元素里,返回值是布尔类型
>>> a = 1
>>> a in [1,2,3]
True
>>> b = 6
>>> b in [1,2,3]
False
>>> b not in [1,2,3]
True
>>> a not in [1,2,3]
False
6.身份运算符
返回的类型是布尔类型
关系运算符的==是比较两个变量的值是否相等,而is是比较两个变量的身份是否相等,那身份指的是什么呢?身份指的是变量的内存地址
>>> a = 1
>>> b = 2
>>> a is b
False
>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = {1,2,3}
>>> b = {2,1,3}
>>> a == b
True
>>> a is b
False
那么如何判断变量的类型
>>> a = 'hello'
>>> isinstance(a,str)
True
>>> isinstance(a,int)
False
>>> isinstance(a,(int,str,float))
True
对象的三个特征:id,value,type
7.位运算符
把数字(其它进制)当作二进制数进行运算
& 按位与
>>> a = 2
>>> b = 3
>>> a & b
2
首先将2转化成二进制的表达形式10,同理将3转化成二进制的表达形式11,10和11每一位相对应之后取与,得到10,最后转成十进制位2
| 按位或
>>> a = 2
>>> b = 3
>>> a | b
3
首先将2转化成二进制的表达形式10,同理将3转化成二进制的表达形式11,10和11每一位相对应之后取或,得到11,最后转成十进制位3
^ 按位异或 (相同取0,不同取1)
~ 按位取反
(以下两点摘录自https://blog.youkuaiyun.com/forrest_gao/article/details/51493045)
左移运算符(<<)
将一个运算符对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例如:a = a << 2 将 a 的二进制位左移2位,右边补0,
左移1位后a = a * 2;
若左移时舍弃的高位不包含1,则每左移以为,相当于 该数乘以2
右移运算符(>>)
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃.
操作数每右移一位,相当于该数除以2.
例如:a = a >> 2 将a的二进制位右移2位,
左补0 或 补1 即被移数是正还是负。
>>> a = 2
>>> a = a << 2
>>> print(a)
8
>>> a = 2
>>> a = a >> 2
>>> print(a)
0