Python变量和运算符

一、变量:名字

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.csdn.net/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

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值