01-面向对象
面向对象编程介绍面向过程编程核心是“过程”二字,过程指的是做事情的步骤,即先做什么再做什么。
基于该编程思想写程序,就好比一条工厂流水线,一种机械式的思维方式。
优点:逻辑清晰,复杂的问题流程化,进而简单化。
缺点:可扩展性差。
面向对象编程面向对象编程的核心是对象二字,对象指得是特征与技能的结合体。基于该编程思想写程序,就好比在创造世界,一种上帝式的思维方式。
优点:可扩展性高。
缺点:编写程序的复杂程度远高于面向过程。
类和对象什么是类?类型,分类
先定义类,后调用类产生对象。
在现实世界中:对象是一个个具体存在的事物,类是由人类文明的发展抽象总结出来的。
在程序中:必须遵循先有类,再有对象
总结:
对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体。
定义类12345678# 类名使用驼峰命名法class Student: school = 'oldboy' def choose_course(self): print('choose course') def learn(self) ...
01-常用模块
OS模块能与操作系统交互,控制文件 / 文件夹
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879# 创建文件夹import osos.mkdir(r'D:\py_case\test')# 删除文件夹os.rmdir(r'D:\py_case\test')# # 列出指定目录下所有文件和子目录 (子目录文件不会列出来)res = os.listdir(r'D:\pycharm_project\Test')print(res)# 打印结果:['.idea', 'ex16.py', 'test.json', 'test.pkl', 'test.py']# 列出当前文件所在的文件夹res = ...
01-函数基础
函数的定义什么是函数函数就是一种具备某一功能的工具,事先将工具准备好就是函数的定义,遇到场景拿来就用。
怎么使用函数12345ef 函数名(等同于变量)(): # 定义函数 """对函数的描述""" 代码块函数名() # 函数调用
注册功能函数12345678910111213141516171819def register(): """注册功能""" count = 0 while count < 3: username_inp = input('请输入你的用户名:').strip() pwd_inp = input('请输入你的密码:').strip() re_pwd_inp = input('请再次确认你的密码:').strip() if re_pwd_inp != pwd_inp: ...
01-文件处理
字符编码字符编码就是二进制和字符的映射关系
文本编辑器存取文件的过程
打开编辑器就是启用动了一个进程,进程就是在内存里的,所以写的内容就在内存里,断电了数据就会消失
保存之后,编辑器就会把内存的数据记录在硬盘上
我们平时写的py文件,与编写其他文件没什么不同,就是写了一堆字符
python解释器执行py文件的原理
python解释器启动,此时就相当于启动了一个文本编辑器
python解释器就相当于一个文本编辑器,打开了一个py文件,也就是从硬盘上把文件内容读入到内存中
python解释器执行刚刚加载到内存中的代码
python解释器与文本编辑器的异同相同点:python解释器是解释执行文件内容的,因而python解释器具备py文件的功能,这一点与文本编辑器一样。
不同点:文本编辑器将文件内容读入内存后,是为了显示或者编辑,根本不会在意python的语法,而python解释器将文件内容读入内存之后,会识别Python语法。
什么是字符编码计算机只认识0和1,而我们现在输入的字符计算机是不认识的,必须要经过一个转换过程使得计算机识别人类的字符:
字符……翻译过程……数字
反正就是有 ...
01-python基础
变量和常量变量什么是变量变量: 定义世间万物变化的状态
IPO
I —> input —> 输入(变量)
P —> Process —> 处理
O —> Output —> 输出
变量的组成
变量名:具有描述意义; 接受变量值
赋值符号:赋值,把变量值传给变量名
变量值:具体的值
变量名的规范
变量名必须要有意义
变量名由数字、字母、下划线组成,不能以数字开头
不能以关键字命名
12# 关键字['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec','finally', 'for', 'from', ' ...
04-MySQL高级
MySQL架构组成MySQL逻辑架构MySQL架构介绍MySQL 由连接池、SQL 接口、解析器、优化器、缓存、存储引擎等组成,可以分为四层,即连接 层、 服务层、引擎层和文件系统层
MySQL基础架构图:
连接层
最上面是一些客户端和连接服务, 不是MySQL特有的,所有基于网络的C/S的网络应用程序都应该包括 连接处理、认证、安全管理等。
服务层
中间层是MySQL的核心,包括查询解析、分析、优化和缓存等。同时它还提供跨存储引擎的功能,包括 存储过程、触发器和视图等。
引擎层
存储引擎层,它负责存取数据。服务器通过API可以和各种存储引擎进行交互。不同的存储引擎具有不同 的功能,我们可以根据实际需求选择使用对应的存储引擎
存储层
数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互
SQL查询流程我们用一条 SQL SELECT 语句的执行轨迹来说明客户端与 MySQL 的交互过程,如下图所示:
通过客户端/服务器通信协议与 MySQL 建立连接
查询缓存,这是 MySQL 的一个可优化查询的地方,如果开启了 Query Ca ...
03-MySQL索引
什么是索引索引的本质是一个特殊的文件,是存储引擎快速找到记录的一种数据结构。
类比:查字典的过程,通过拼音索引
索引的本质:通过不断地缩小想要获取数据地范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。
为什么要使用索引使用索引就是为了提高查询效率
索引的底层原理使用B+树
索引的种类
主键索引:加速查找、不为空、不能重复
唯一索引:加速查询、不为空的字段不能重复
联和唯一索引:unique(name, password)
普通索引:加速查找 index(name)
联合索引:index(name, password)
索引的创建主键索引新增主键索引
1234567891011--创建的时候增加主键索引create table t1( id int auto_increment primary key, name varchar(32) not null default '')charset utf8;--表创建完了之后再增加主键索引 alter table t2 add p ...
02-MySQL基本操作
操作数据库增:
1create database 数据库名称 charset utf8; # 字符集默认时latin1
数据库命名规范:
可以由字母、数字、下划线、@、#、$
区分大小写
具有唯一性
不能使用关键字如 select create
不能单独使用数字
最长128位
删:
1drop database 数据库名称;
改:
数据库删除了再添加
线上环境下,不能直接删除数据,再删除之前需要进行备份
查:
12show database; # 查看数据库use 数据库名称
创建数据表123456789101112语法: create table 表名( 字段名 列类型 [可选参数], 字段名 列类型 [可选参数] .... ) charset=utf8; 如: create table t4( id int, name char(15) )charset=utf8;
列约束
auto_increment 自增长1
primary key 主键索引,加快查询速度,列的值不能重复
not n ...
01-MySQL字符集
字符集
字符集是一套符号和编码的规则,不论是在 oracle 数据库还是在 mysql 数据库,都存在字符集的选择问题。
而且如果在数据库创建阶段没有正确选择字符集,那么可能在后期需要更换字符集,而字符集的更换是代价比较高的操作,也存在一定的风险。
我们推荐在应用开始阶段,就按照需求正确的选择合适的字符集,避免后期不必要的调整。
查看所有的字符集
在MySQL客户端和MySQL服务端之间存在着一个字符集转换器
character_set_client => utf8 (客户端告诉转换器发送过来的是utf8格式的编码)
character_set_connection => utf8(将客户端传送过来的数据转换成utf8格式)
character_set_results => utf8 (告诉客户端结果数据的编码是utf8)
注:以上三个字符集可以使用set names utf8来统一进行设置
用的字符集的详细信息latin字符集
gbk字符集
utf8字符集
以上三幅图可以知道,每种字符集中,用于存储一个字符的最大的字节数目都不同,utf8最大,lati ...
00-MySQL初始
数据库是什么数据库:存储数据的仓库
为什么使用数据库之前用excel来进行管理数据,有诸多问题:
电子表格只能处理有限的数据列和数据行,对于数百万玩、数千万等巨大的数据列很难有效地处理
电子表格无法提供安全、方便地权限管理和控制手段
电子表格很难实现多个数据之间地关联
电子表格很难实现并发控制、增量维护等管理方式
这些问题,数据库都能解决,数据库是一种有效地管理大量的、安全的、并发的、关联的、一致的数据管理工具。
数据库的分类关系型数据库关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
也就是说对于每一列的数据类型会有约束。
典型的关系型数据库:
MySQL、 MariaDB
Oracle 甲骨文公司,收费昂贵
SQL Server 微软出品
SQLite 小型的文件数据库
非关系型数据库常见的NoSQL一般分为四大类:
1、列存储数据库。如Cassandra, HBase, Riak等,这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指 ...