简介: 一些Python常用的语法基础
1. is和 == 的区别
- is: 比较两个实例是否完全相等, 包括内存地址
- == : 只是比较两个实例的内容, 只要内容相等就行
2. range 和 xrange 的区别
- xrange是在P2中具有的
- range 返回的是一个List对象, xrange 返回的是一个迭代器对象
- xrange由于不会生成一个list, 而是每次调用返回期中一个值, 内存空间使用极少, 从性能对比来看range更好
3. 什么是深浅拷贝
- 浅拷贝 copy.copy()
只拷贝第一层, 并不会拷贝深层, 修改第一层无影响, 修改深层就相互影响了
切片操作也可以完成浅拷贝 - 深拷贝 copy.deepcopy()
递归性质的拷贝, 会在内存中生成一套完全一样的内容, 修改其中任意一个变量,
对另一个无影响, 就是将所有数据重新创建
4.Python 的自省
Py自省: 使程序员所写的程序在运行时, 能够获得对象的类型
- dir: 获取当前对象内部的属性
- type: 查看当前对象的类型
- hasattr: 判断对象是否包含某个属性
- getattr: 获取对象的属性
- isinstance: 判断对象是否是某个类的实例
5. 简单的数据交换
- 互换变量
x, y = 1, 2
x, y = y, x
print(x, y)
# 2,1
- 运算法
x, y = 1, 2
x = x + y # x=3
y = x - y # y=1
x = x - y # x=2
print(x)
2
print(y)
1
- 异互交换
a, b = 1, -1
a = a ^b # 融合
b = a ^b # 删除自己那部分, 就剩下a的
a = a ^b # 删除掉b的, 就剩下自己的
print('a:%s\nb:%s'%(a,b))
a:-1
b:1