python基础
来源:互联网 发布:数据库置疑修复工具 编辑:程序博客网 时间:2024/06/05 16:24
1.对象通过引用传递
且会缓存(较小的)整形数据
2.采用多元赋值时,等号左右两边的对象都是tuple
由于上述性质,可以不用第三个变量交换两个变量的值
3.is / is not 测试两个变量是否指向同一个对象
4.str()/repr() 以字符串方式获得对象内容
-str()的输出对用户比较友好
-repr() 的输出对python比较友好,用eval()可以重新获得该对象
大多数情况下二者没有区别
5.类型的三种分类模型
存储模型(标量存储/容器存储)
更新模型(可变/不可变)
访问模型(直接存取/顺序/映射)
6.两个整型相加 ,+ 代表整型加法。两个浮点型相加,+代表浮点型加法,当两个数据类型不同时,就需要进行类型的转换(不存在混合运算)
类型转换优先级:
复数-浮点型-长整型 (若都为整型,无需转换)
7. / 表示传统除法,//表示地板除
8.幂运算(**)比其左侧操作数的一元操作符优先级高,比其右侧操作数的一元操作符优先级低
9.用于数值运算的基本函数:abs() /divmod() / pow() /round()
abs() 返回给定参数的绝对值
divmod() 接受两个参数,返回一个包含商(地板除)和余数的tuple
pow() 指数运算
round() 对浮点数进行四舍五入运算
10.仅用于整型的函数
进制转换函数 hex() / oct()
ASCII转换函数 chr() / ord()
11.序列类型(字符串 / List / tuple)操作符
成员关系符 in / not in 判断一个元素是否属于一个序列
连接操作符 + 将一个序列和另外一个相同类型的序列连接成一个新的序列
重复操作符 *
切片操作符 [] [:] [: :]
12.使用range创建一个list
13.原始字符串
14.enumerate()
15.str.capitalize() / str.title()
16.tuple不是那么“不可变”?
可以用连接操作符(注意只有一个元素的tuple要加逗号)
可以改变tuple中的可变对象
17.所有的多对象的、逗号分隔的、没有明确用符号定义的,这些集合默认的类型都是tuple
18.所有函数返回的多对象都是tuple类型
19.序列类型的对象的浅拷贝是默认类型拷贝,以下方式都是浅拷贝
-完全切片操作
-工厂函数
-copy模版的copy函数
对一个对象进行浅拷贝其实是创建了一个类型跟原对象一样,其内容是原对象的引用。
有几个需要注意的点:
Ⅰ.y=x和y=x[:]是不一样的。
y=x 将变量y指向了x指向的地方(即取了一个别名)
y=x[:]是一种浅拷贝。
Ⅱ.浅拷贝新创建了一个对象,这个对象的id是新的,但是它的内容是原来对象的引用(即y与x一起指向同一些元素 (id一样))。
上面可以看到,因为y是x的浅拷贝,当我改变x中的元素时,y中对应的元素也会改变(前提是改变可变对象,若“改变”一个不可变对象,不会影响y,
如上,我将x中的不可变对象str“变成”了'abc‘,其实不是改变,只是又创建了一个新的对象,将x中的变量指向了这个新的对象而已,而y中那个对应的变量
则还是指向没有改变的那个str)
- Python基础
- Python基础
- Python基础
- Python基础
- python基础
- Python基础
- python基础
- Python基础
- python 基础
- Python 基础
- python基础
- Python基础
- Python基础
- python基础
- Python基础
- python基础
- python基础
- Python基础
- Qt设置horizontal line 和vertical line 的颜色
- caffe 视觉层
- shell架构,环境变量
- P1307数字反转
- iOS集成友盟第三方登录
- python基础
- ARM程序状态寄存器
- 一些常用的第三方框架之xUtils
- 在(Eclipse)Myeclipse中创建Maven项目
- 商品展示
- 关于差分放大器INA143的使用
- bzoj4885: [Lydsy2017年5月月赛]长方体
- 一个错误搞我郁闷好几天,真是醉了
- Java基础知识【上】