Python学习总结

1.python3里,print()是一个函数,需要你将输出的东西作为参数传给它
2.input(),等待用户输入一个python表达式(然后返回结果)
3.dump是把字典上传到文件
4.队列先进先出,栈(堆栈)先进后出,堆顺序随意,栈是一种运算受限的顺序表,仅允许在栈顶进行插入和删除,把另一端称为栈底,栈是操作系统在建立某个进程或线程时这个线程建立的存储区域。
5.列表属于可变序列,可以任意修改列表中的元素;元组属于不可改变序列,不能改变元组中的元素,因此元组没有增加元素、修改元素、删除元素的相关方法。
6.列表、字典、元组、集合数据结构整理
列表:可重复、类型不同
Shoplist=[‘apple’, ’banana’, ‘orange’,123]
元组:和列表结构上没有区别,元组是只读的,不能修改;元组中只包含一个元素时,需要在元素后面添加逗号
#t=123,456,’hello’
t=(123,345)
Tuple=(50,)
集合:最好的应用是去重,可以通过一个set函数转换成集合
(1)jihe={‘apple’, ’pear’, ‘apple’}
(2)tup=(2,2)
tup_set=set(tup) #tup_set为2,1
字典:存储键值对数据
di={‘a’:123,’b’:something}

列表、元组、字典的区别
列表:可变长度,异构以及任意嵌套;可变的序列;任意对象的有序集合
元组:固定长度,异构以及任意嵌套;不可变得序列;任意对象的有序集合
和list相比:
比列表读取速度快;对数据“写保护”;可用于字符串格式化中;可作为字典的key
字典:可变长度,异构以及任意嵌套(同列表);任意对象的无序集合,以“键”为象征;属于可变映射类型,是唯一内置的映射类型(键映射到值的对象);查找和插入速度快,需要占用大量的内存,是用空间来换取时间的一种方法

一、Python中变量在内存中的存储
2.1.1引用和对象
对象:当创建数据对象时,在内存中会保存对象的值,这个值就是对象自己;
引用:对象保存在内存空间,外部想要使用对象的值,就需要引用来操作对象。内存中会保存对象的引用数量,当某个对象的引用为0时,对象会被回收。
2.1.2可变数据类型和不可变数据类型
数据分类:
可变数据对象:列表(list)和字典(dict)
不可变数据对象:整型(int)、浮点型(float)、字符串(string)和元组类型(tuple)
注:此处中的可变和不可变,是指内存中的对象(value)是否可以改变。对于不可变类型的对象,在对对象进行操作时,必须在内存中重新申请一个新的区域,即重新给一个新的地址用来存储;对于可变类型的对象,在对对象进行操作时,并不会重新申请新的地址,而是在该对象的后面继续申请即可,即address不会改变,而address区域的大小会变长或变短

不可变数据类型:对象的值不可改变,如果改变了对象的值相当于新建了一个对象,而对于相同值得对象,在内存中只有一个对象。
可变数据类型:允许变量的值进行改变,对于变量给值的过程中,只是改变了变量的值,而不会新建一个对象,所以可变数据类型的意思是对一个变量进行操作时,其值时可变的,值的变化并不会引起新建对象,即地址是不会变的,只是地址的内容变化了或者地址得到了扩充,不过对于相同值的不同对象,在内存中存在不同的对象,即每个对象都有自己的地址,相当于内存中对同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

2.1.3引用传递和值传递(函数传值)
说明:可变对象为引用传递,不可变对象为值传递
引用传递:传递列表或字典时,如果改变引用的值,就修改了原始对象
值传递:当传递不可变对象时,如果改变引用变量的值,只是创建了不同的对象,原始对象并没有改变。

2.1.4深拷贝和浅拷贝
浅拷贝:语法:copy.copy(),浅拷贝是创建了一个和原对象一样的类型,但其内容是对原对象元素的引用。
深拷贝:语法:copy.deepcopy(),在内存中将所有的数据重新建立了一份
变量的本质:在内存中开辟了一块空间,其中存储了指定类型的数据【实体(对象)】存储在堆中,变量(引用)存储在栈空间中

2.2基本数据类型
Python中常用的数据类型有:整形(int)、浮点型(float)、字符串(string)、空值(None)、布尔值

装饰器:本质是一个Python函数,可以让函数在不做任何代码变动的情况下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。有了装饰器,就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值