原文地址:
https://blog.csdn.net/fgf00/article/details/52061971
编辑:智能算法,欢迎关注!
上个系列我们一起学了
今天一起学习python的数据结构的相关知识
1. 模块初识
Python的强大之处在于他有非常丰富和强大的标准库和第三方库。
一般标准库在Lib目录,第三方库:在 site-packages中。
1.1 sys模块(python解释器的sys模块,用c语音写的,Lib目录下没有sys.py)
sys模块主要是用于提供对python解释器相关的操作,比如:
用法举例:
1.2 os模块
os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,所以离不了os模块。python编程时,经常和文件、目录打交道,这是就离不了os模块。
用法举例:
大家可以理解下下面代码是什么意思?文末留言一起交流。
2. python运行机制
我们知道python是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!
一些解释型语言也可以通过解释器的优化来在对程序做出翻译时对整个程序做出优化,从而在效率上接近编译型语言。
此外,随着Java等基于虚拟机的语言的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。
用Java来举例,Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。
其实Python和Java/C#一样,也是一门基于虚拟机的语言
简述Python的运行过程
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
判断更新时间,执行py还是pyc。
说pyc文件其实是PyCodeObject的一种持久化保存方式。
3. 数据类型
在32位机器上,整数的位数为32位,取值范围为
-2^31~2^31-1,
在64位系统上,整数的位数为64位,取值范围为
-2^63~2^63-1,
这也是为什么32位系统内存最大为4G的原因。
4G=4*1024M*1024k*1024-1 = 2^31-1
从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数
python3 已经不区分int和long
浮点数用来处理实数,即带有小数的数字。
浮点数是属于有理数中某特定子集的数的数字表示,小数包括有理数和无理数。
所以浮点数一定是小数,小数不一定是浮点数。
浮点计算是指浮点数参与的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。
由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
Python 3最重要的新特性大概是对文本和二进制数据做了更为清晰地区分。文本总是Unicode,由str类型表示,二进制数据由bytes类型表示。Python 3不会以任意隐式的方式混用str和butes,正因为此,python 3不能拼接字符串和字符包,也无法在字节包里搜索字符串,不能讲字符串传入参数为字节包的函数。
str 转为 bytes – encode
bytes 转为 str – decode
python 数据传输,都是以二进制数据传。
4. 字符串操作
5. 列表、元组操作
元组(): 又称只读列表,只有 count index 两个方法。
6. 字典操作
字典一种key - value 的数据类型
a). dict是无序的
b). key必须是唯一的,so 天生去重
7. 深copy和浅copy
7.1 数字和字符串
上篇提了:对于数字和字符串一旦创建便不能被修改,假如对于字符串进行替代操作,只会在内存中重新生产一个字符串,而对于原字符串,并没有改变。
7.2 字典、列表等数据结构
先看个例子:
请想一下:如果对alphabet的值做如下更改,其他四个变量的值会不会变化呢?
下面分别看一下其他四个变量的值:
7.3 总结一下
声明:本文系网络转载,版权归原作者所有。如涉及版权,请联系删除!