第一部分 基础语法
1.基本类型
1.1 C语言类型:整型:int unsinged int 32位 4个字节
char
short
long
浮点型:float 32位
double 64位
指针类型:char* char a[] "hello world!"声明
数组和结构体
1.2 Python数据类型:
整型:int只有一个,变长的,默认8个字节,不用考虑溢出问题
浮点型:float 64位
字符串类型:str ‘hello’ “hello”
布尔类型:bool,判断,
列表=》数组,集合=》Hash,字典=》Hash,元组=》只读数组
2.程序组织
1.函数,把我重复代码进行封装,复用=》方便程序维护
2.程序控制:if-else判断,while循环
3.模块(库),一个文件就是一个库,import
4.面向对象:类和对象
成员变量:年龄,名字,成员函数:显示信息
变量和函数封装在一起,就是类
属性和行为封装在一起就是类,类实例化就是对象
继承:工程上有很重要的价值
复用库,同时增加自己的功能需求
目的:一个实现我们想功能,
另一个主要是工程上需要的,代码量变多之后1个源文件,4-5源文件
1000多个工程师,同时在维护一套系统,上千万行的代码,几十万程序文件
控制代码复杂度:减少代码复用
面向对象是把变量(事物属性)和函数(事物行为)
第二部分 数据结构类型
数据结构:数据结构的功底呢?区分初级工程师和高级工程师区别
你能知道Python提供的基本数据类型,底层是什么套路,我知道在什么场合下选哪种系统结构数据类型
数据结构: 复杂度(时间,空间)
增删查改
1.线性表 存储:
顺序存储-》数组
链式存储-》链表
行为:队列,堆栈
查找:挨着一个个问 ,for循环遍历进行查找
查找:O(n)
2.树 二叉树:查找快
查姓名:可以构建二叉树的时候,以名字作为权中判断节点
查找:每问一个节点,查找范围会缩小一半
MS SQL server MySQL 关系型数据库
主键,索引=》构建了一棵索引树,score建立一个索引=》建立二叉树(B树)
select name from student where score > 60
好处是查找,不好的地方:添加删除修改慢,因为调整索引树需要额外时间
查找:O(log2n)
3.图
地图相关
4.hash
哈希函数=》输入查找的内容(李四),输出是什么(李四的位置)
查找非常快O(1)
Python中的数据结构类型:
1.元组:Tuple,(1,2,3),元素不可修改
2.列表: List, [1,2,3],元素可修改的 dir()显示所有的成员函数
底层存储结构:数组
链式存储:deque
3.集合:Set,{‘Tom’,‘Lucy’},元素唯一的
hash结构:查找时间非常快,O(1),常数时间
不管你元素有多少,我的查找时间是不变的
4.字典:Dict,{‘Tom’:89,’,’:67},数据对,存储的是键key:值Value对
hash结构,就是再集合基础上,给每一个元素,加一个值
重点:让大家理解四种基本数据结构类型底层是什么数据结构