01 2021 档案
摘要:引入 存储引擎决定了表的类型, 而表内存放的数据也是有不同的类型, MySQL支持多种类型, 大致可以分为三类 : 数值类型、日期类型、字符串类型 一.数值类型 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词 二.数值类型之整数类型 TINYINT : 小整数 SAMLL
阅读全文
摘要:一.存储引擎介绍 1.什么是存储引擎(比喻成表类型) 在讲存储引擎之前我们来做个比喻 : 现实生活中我们我们存储的数据文件有不同的类型, 每种文件类型对应各自不同的处理机制 比如一个视屏文件,可以转换成mp4、avi、wmv, 一个图片可以是png、jpg 我们电脑的磁盘上也会存在不同类型的文件系统
阅读全文
摘要:一.系统数据库 MySQL刚安装好, 我们使用SQL语句 show databases 查看有哪些库的时候, 会显示出一些系统默认的一些数据库 : 1.information_schema 这是虚拟库, 不占用磁盘空间, 存储的是数据库启动后的一些参数, 如用户表信息、列信息、权限信息、字符信息等
阅读全文
摘要:引入 有了mysql这类数据库管理软件, 就可以将程序员从繁琐的数据管理中解脱出来, 让我们更加专注的编写程序的逻辑 一.sql语法 mysql服务端软件即mysqld, 它帮我们管理好文件夹以及文件 前提是作为使用者的我们, 需要下载mysql的客户端, 或者其他模块来连接到mysqld 然后使用
阅读全文
摘要:一.Mysql简介 MySQL是一个开源的关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management Syste
阅读全文
摘要:🐬01.初识数据库管理软件 🐬02.Mysql简介及安装(windows平台) 🐬03.Mysql安装(Linux平台) 🐬04.初识SQL语句 🐬05.MySQL库的详细操作 🐬06.存储引擎(表类型) 🐬07.表数据类型详解 🐬08.表完整性约束详解 🐬09.mysql模式设置
阅读全文
摘要:引入 我们通常称 Mysql 、Oracle、SQLite之类的为数据库, 其实本质上它们是一个个数据库管理软件 一.数据库管理软件的由来 在学习Mysql之前, 我们的数据想要永久保存,一般都是保存在硬盘中, 硬盘的单位就是文件, 毫无疑问, 一个文件仅仅只能存在于一台机器上, 但是一个程序的所有
阅读全文
摘要:## 引入 我们知道一个线程同一时间内只能被操作系统分配一个**CPU**资源, 我们可以基于多进程实现并发, 也可以基于多线程实现并发, **CPU**正在运行一个任务, 有两种情况下会被切去执行其它任务, 一种是该任务发生了阻塞, 另一是该任务运行时间过长或者被其他优先级更高的任务夺走**CPU
阅读全文
摘要:引入 什么是线程、进程与线程的关系 1.创建线程的开销远远小于创建进程 创建线程的开销要远远小于创建一个进程, 因为创建进程需要操作系统申请一块内存空间, 然后将数据从硬盘读到该进程的内存空间中, 并且一个进程至少要有一个线程, 而创建一个线程只是在进程的内存空间里创建, 无需申请空间, 几乎是发起
阅读全文
摘要:## 引入 在进入多进程的学习之前, 一定需要先了解一个应用程序是如何开启一个进程的, 以及操作系统对进程是如何进行分配资源的, [进程、线程、进程池、进程三态、同步、异步、并发、并行、串行](https://www.cnblogs.com/songhaixing/p/13799827.html)的
阅读全文
摘要:一.GO语言介绍 📖GO语言的发展 二.GO的环境搭建 📖01.GO语言开发环境搭建 📖02.GO开发编辑器安装 待整理...
阅读全文
摘要:一.Go开发编辑器 开发工具多种多样, 选择一款适合自己的编辑器, 并且还要兼顾高效轻量 适用于go语言开发的编辑器有很多,包含GoLand、IDEA、VS Code等 甚至使用submit、notepad++、vim等也能进行go语言的开发 1.VS Code介绍 VS Code (Visual
阅读全文
摘要:一.GO语言开发包 1.什么是GO语言开发包 go 语言开发包其实是对go语言的一种实现,包括相应版本的语法, 编译, 运行, 垃圾回收等, 里面包含着开发 go 语言所需的标准库, 运行时以及其他的一些必要资源 2.GO语言开发包下载地址 Go官方下载地址 : https://golang.org
阅读全文
摘要:支持动态更换IP和端口, 上传下载, 进度条显示, 正则校验文件格式, hash校验文件完整性 另有已封装好的exe文件 客户端 # coding=utf-8 from socket import * import json import struct import os,re import has
阅读全文
摘要:上章回顾 在讲解 socketserver 模块之前先补充一下上一章节的一个示例: 实现客户端从服务端下载文件的功能,能hash校验(Windows和Linux测试成功,代码比较low仅供观望) 服務端 # coding=utf-8 from socket import * import json
阅读全文
摘要:全部快捷键 1、编辑(Editing) 快捷键 功能 Ctrl + Space 基本的代码完成(类、方法、属性) Ctrl + Alt + Space 快速导入任意类 Ctrl + Shift + Enter 语句完成 Ctrl + P 参数信息(在方法中调用参数) Ctrl + Q 快速查看文档
阅读全文
摘要:引入 首先在前面储备知识中了解了OSI七层模型的工作原理以及TCP与UDP的区别之后, 下面的内容就非常容易理解了 一.客户端 / 浏览器与服务端架构 在了解 socket 之前我们先要知道什么是 C/S, 什么是 B/C? 我们知道软件之间的通信是基于计算机的三层结构 (应用程序、操作系统、计算机
阅读全文
摘要:详细使用参考官方文档 : https://docs.python.org/zh-cn/2/library/struct.html struct 简单介绍 struct 是 Python 的内置模块, 在使用 socket 通信的时候, 大多数据的传输都是以二进制流的形式的存在, 而 struct 模
阅读全文
摘要:## 一. 什么是异常 异常就是程序运行的时候发生的错误信号, 在程序出错时, 会产生一个异常, 如果没有及时处理批该异常, 程序的运行也随即终止, 如下图 : , 该模块的目的在于取代几个较旧的模块和功能 os.system os.spawn* os.popen* popen2.* commands.* 官方
阅读全文
摘要:引入 正则表达式是匹配字符串的强大工具, 在每个编程语言中都有正则表达式的概念, 利用正则表达式, 我们从返回的页面内容中提取想要的内容就变的比较方便了 1.什么是 re 模块 re 模块是 Python 内置的模块 2.什么是正则 正则表达式是对字符串操作的一种逻辑 (规则), 就是事先定义好一些
阅读全文
摘要:参考文档文档 : https://gallery.pyecharts.org/#/Map/map_without_label 简单的使用 0.下载模块 首先在命令行下载 pyecharts 模块 pip3 install pyecharts 1.查看版本 import pyecharts print
阅读全文
摘要:匿名函数在列表生成式 (推导式) 中的应用产生的闭包函数延迟绑定问题
阅读全文
摘要:匿名函数在列表生成式 (推导式) 中的应用产生的闭包函数延迟绑定问题 先看下面这个函数: def num(): return [lambda x: x * i for i in range(4)] print([func(2) for func in num()]) 再不运行结果的情况下心算下它的结
阅读全文
摘要:引入 参考官方文档 typing 是 3.5 版本的新功能, Python 运行时不强制执行函数和变量类型注解, 但我们写完代码一段时间后再回来看我们的代码, 可能就忘记了自己所写的函数需要传什么参数、返回什么类型的结果, 又得去阅读代码, 这样就大大降低了开发的效率, 而 typing 模块的数显
阅读全文
摘要:一.引入 1.什么是算法 算法就是高效解决问题的方法 一种算法就是用来解决一种特定问题的 比如从10000个从小到大排列且不连续数字里找出8654 普通方法就是用眼瞅,从左到右 运气好瞅一次,运气不好瞅一万次 于是就有了二分法,取出中间的值 左边的值一定比中间的值小 右边的值一定比中间的值大 于是找
阅读全文
摘要:引入 shutil 对压缩包的处理实际上是调用了 ZipFile 与 TarFile 这两个模块 一.zipfile 模块 1.什么是 zipfile 模块 zipfile 模块是 Python里用来做 zip格式编码压缩和解压缩的工具, 在Windows 中常见的就是 zip 格式的压缩包, 所以
阅读全文
摘要:一. 什么是单例模式 单例模式 (Singleton Pattern) 是一种常用的软件设计模式 (Deaign pattern), 提供了在软件开发过程中面临的一些问题的最佳解决方案 而单例模式的主要目的是确保某一个类只有一个实例存在, 即一个类多次实例的结果指向同一个对象, 用于节省内存 如果我
阅读全文
摘要:引入 Python中一切皆对象, 那么类本质上也是一个对象 一.什么是元类 类既然也是对象, 那么就应该有另一个类来实例化得到它, 实例化得到类的类就是元类 默认情況下, 元类是 type 这个类, 并且所有的类都是由元类实例化得到的, 包括他自己 1.先定义一个类来进行分析 class Immor
阅读全文
摘要:十八. 上下文管理协议 __enter__ 和 __exit__ 1.什么是上下文管理协议 上下文管理协议就是 with 语句, 为了让一个对象兼容with语句,必须在这个对象的类中声明__enter__()和__exit__()方法 with 对象,触发对象的__enter__的执行 在with同
阅读全文
摘要:十七. __eq__ 触发条件 : 在两个对象进行 == 比较值的时候触发 __eq__() 的执行, 在该方法内部可以自定义比较规则 print(12 == [1,2,3]) # False print("w" == (2,3,5,)) # False l1 = [1,2,3] l2 = [1,2
阅读全文
摘要:十六. __hash__ 触发条件 : 使用 hash([对象]) 函数的时候触发, 里面返回什么值就是什么值, 返回值必须是整数 class Str: def __hash__(self): return 1231 # 只能返回整数, 不然报错 : "TypeError" 类型错 p = Str(
阅读全文
摘要:十五. __len__ 计算对象的长度, return 是多少, len([对象]) 的结果就是多少 触发条件 : 使用 len([对象]) 时触发, 返回值必须为整数 🐞"return"多少就是多少 class Person: def __len__(self): return 11111 #
阅读全文
摘要:补充链式调用知识 链式调用是设计程序的模式, 在Java 和 js 中被广泛应用 链式调用格式 : A.方法.方法.方法.方法 优势和好处 : 代码量大大减少, 逻辑集中清晰明了, 且易于查看和修改 class Person: def __init__(self,name,age,sex): sel
阅读全文
摘要:十四. __iter__ 和 __next__ 前面迭代器那一章节我们讲解了可迭代对象和迭代器对象的特点以及 For 循环的原理 : 可迭代对象 (iterable) : 在python中,但凡内置有 __iter__方法的对象,都是可迭代的对象 迭代器对象 (iterator) : 内置有__ne
阅读全文
摘要:十三. __all__ 前面模块介绍章节其实已经介绍过了 __all__ 的使用, 它用来在使用 from [模块名] import * 的时候, 针对这个 * 来限制能够使用的属性 🐞文件 "test.py" 内容 __all__ = ["Foo","Bar"] # 如此只能使用 Foo,Bar
阅读全文
摘要:十二. __slots__ 和 __dict__ 1.__slots__ 默认我们可以给class实例绑定任何属性和方法,这就是动态语言的灵活性如果我们想要限制class的属性怎么办?比如,只允许对Persion实例添加name和age属性。为了达到限制的目的,Python允许在定义class的时候
阅读全文
摘要:十一. __module__ 和 __class__ 1.__module__ 可以查看当前操作的对象在哪个模块 🐞文件 "test.py" 内容 class Foo: def __init__(self,name): self.name = name 🐞当前执行文件内容 from test i
阅读全文
摘要:十. __str__ 和 __repr__ 1.__str__ 触发条件 : print([对象]) 的时候触发 __str__ 的执行 class Person: def __init__(self,name): self.name = name def __str__(self): print(
阅读全文
摘要:九. __init__ 和 __new__ 1.先看代码 : class Person: def __init__(self,name): print("触发__init__") self.name = name def __new__(cls, *args, **kwargs): print("触
阅读全文
摘要:八. __call__ 触发条件 : [对象] + ( ) 就触发 __call__ 的执行 class Person: def __init__(self,name): self.name = name def __call__(self, *args, **kwargs): print(args
阅读全文