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)

0 0
原创粉丝点击