这是本文的目录
前言
python简介
Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。
Python 特点
1.易于学习: Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
2.易于阅读: Python代码定义的更清晰。
3.易于维护: Python的成功在于它的源代码是相当容易维护的。
4.一个广泛的标准库: Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
5.互动模式: 互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
6.可移植: 基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
7.可扩展: 如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
8.数据库: Python提供所有主要的商业数据库的接口。
9.GUI编程: Python支持GUI可以创建和移植到许多系统调用。
10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
一、对象
python中一切皆对象,每个对象由:标识、类型、value组成。
标识: 用于唯一的标识对象,通常对应于对象在计算机内存中的地址,使用内置函数id(obj)可返回对象obj。
类型: 用于表示对象存储的“数据”的类型。可以用type(obj)获得对象的所属类型。
value表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
二、堆和栈
内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数
据结构中的堆栈是抽象的数据存储结构。
内存空间在逻辑上分为三部分:代码区、静态数据区和动态数据区,动态数据区又分为栈区
和堆区。
代码区: 存储方法体的二进制代码。高级调度(作业调度)、中级调度(内存调度)、低级
调度(进程调度)控制代码区执行代码的切换。
静态数据区: 存储全局变量、静态变量、常量,常量包括final修饰的常量和String常量。系
统自动分配和回收。
栈区: 存储运行方法的形参、局部变量、返回值。由系统自动分配和回收。
堆区: new一个对象的引用或地址存储在栈区,指向该对象存储在堆区中的真实数据。
三、序列
序列是一种数据存储方式,用来存储一系列的数据。内存中,序列就是一块用来存放多个值的连续的内存空间
四、字典
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
五、函数
函数也是对象,当执行完def定义函数之后,系统就创建了相应的函数对象,那对象就可以看成是堆里面的一个内存块,函数的参数信息、代码信息都在这个内存块中,当函数执行的时候,就是反复在调用这个内存块。不是调一次建一次对象,而是在定义的时候就创建好了,后面只需要调用即可。
六、全局变量和局部变量
变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。
全局变量:
在函数和类定义之外声明的变量。作用域为定义的模块,从定义位置开始直到模块结束。
全局变量降低了函数的通用性和可读性。应尽量避免全局变量的使用。
全局变量一般做常量使用。
函数内要改变全局变量的值,使用 global 声明一下
局部变量:
在函数体中(包含形式参数)声明的变量。
局部变量的引用比全局变量快,优先考虑使用。
如果局部变量和全局变量同名,则在函数内隐藏全局变量,只使用同名的局部变量
七、参数的传递
函数的参数传递本质上就是:从实参到形参的赋值操作。
八、浅拷贝、深拷贝
浅拷贝:不拷贝子对象的内容,只是拷贝子对象的引用
深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象
九、可变参数
可变参数指的是“可变数量的参数”。分两种情况:
*param(一个星号),将多个参数收集到一个“元组”对象中,传入参数,0个,100个等都可以
** param(两个星号),将多个参数收集到一个“字典”对象中,需要附带参数名
十、lambda 表达式和匿名函数
lambda 表达式可以用来声明匿名函数。lambda 函数是一种简单的、在同一行中定义函数的方法。lambda 函数实际生成了一个函数对象(所以lambda本质就是函数)。
lambda 表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。
十二、面向对象的编程
类和对象的关系
我们把对象比作一个“饼干”,类就是制造这个饼干的“模具”。我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打 包在一起”。 对象是类的具体实体,一般称为“类的实例”。类看做“饼干模具”,对象就是根据这个“模具”制造出的“饼干”。
十三、面向对象的三大特征
Python 是面向对象的语言,也支持面向对象编程的三大特性:继承、封装(隐藏)、多态。
零基础Python学习资料介绍
附上Python学习指南
👉Python学习路线汇总👈
围绕Python所有方向的技术点做的整理,以形成各个领域的知识点汇总,这样就可以按照上面的知识点去找对应的学习资源,保证学得较为全面。
👉Python必备开发工具👈
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉实战案例👈
边学边练是最高效的学习方法,这时候可以搞点实战案例来学习。
👉100道Python练习题👈
检查学习结果。
👉面试刷题👈
👉资料领取👈
这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加“住隔壁的王叔”,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。