- 博客(43)
- 收藏
- 关注
原创 Python内置类型性能分析
集合(list)操作def test1(): l = [] for i in range(1000): l = l + [i]def test2(): l = [] for i in range(1000): l.append(i)def test3(): l = [i for i in range(1000)]def test4(): l = list(range(1000))def test5():
2021-07-11 18:43:18
150
转载 Python数据结构之算法的引入
算法的引入引入:如果 a+b+c=1000,且 a2 + b2=c2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?import timestart_time = time.time()for a in range(0, 1001): for b in range(0, 1001): for c in range(0, 1001): if a**2 + b**2 == c**2 and a+b+c == 1000:
2021-07-11 13:11:39
286
原创 Python数据类型之集合
集合简介(set)不同的:集合当中只能存储不可变对象集合中存储的对象是无序的(不是按照元素的插入顺序进行保存的)集合中不能出现重复元素集合只能添加不可变对象创建集合:使用{}来创建集合s = {10,2,3,4,1,2,3,1,1,2,10} # {1,2,3,4,10} # 观察发现集合是直接添加元素s = {[1,2,3],[4,5,6]} # 插入列表报错(不可变对象) s = {} # 这个是字典!set()可以将序列和字典转换成为集合:s = s
2021-07-09 17:00:33
176
原创 Python数据类型之元组及字典
元组(tuple)元组表现形式tuple元组是一个不可变序列使用()创建元素元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略元组解包指将元组当中的每一个元素都赋值给一个变量使用()创建的my_tuple = () # 创建一个空的元组什么时候用列表什么时候用元组:一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表添加元素my_tuple = (1,2,3,4,5)my_tuple[3] = 10 # 报错,因为元组不可变!# 如果一个元组不
2021-07-05 17:30:58
238
原创 Python数据类型之列表
列表的创建列表当中存储的数据,我们称之为元素lst = [1,2,3,4,5] # 创建了一个空的列表列表可以保存任意对象lst = [1,'python',None,True,[1,2,3],print]注:·我们可以通过索引(index)来获取列表当中的元素·索引就是元素在列表当中的位置,列表当中的每一个位置都会有一个索引·索引是从0开始 列表第一个位置就是0 第二个是1 以此类推·获取列表的长度(列表中元素的个数) len()通过该函数可以获取列表的长度·获取长度 其实就是列表
2021-07-04 01:01:53
184
原创 高级编程技巧之第一天(下)
类属性和实例属性以及查找顺序基本查找顺序:·对象是可以向上查找的,所以可以访问到类属性·当对象⾃⼰有该实例属性时 ,则输出的是⾃⼰的`类不能向下查找,所以只能访问到类属性class Father(object): # 类属性 cls_ins = 1 def __init__(self, a, b): # 初始化方法 # 实例属性/字段 self.a = a self.b = b # self.cls_in
2021-02-05 19:32:21
161
原创 高级编程技巧之第一天(上)
鸭子类型和多态鸭子类型多态的概念是应⽤于Java和C#这⼀类强类型语⾔中,⽽Python崇尚"鸭⼦类型"动态语⾔调⽤实例⽅法时不检查类型,只要⽅法存在,参数正确,就可以调⽤。这就是动态语⾔的“鸭⼦类型”,它并不要求严格的继承体系,⼀个对象只要“看起来像鸭⼦”,那它就可以被看做是鸭⼦a = [1,2]b = [2,3] # a和b事列表与列表的扩展c = (5,6) # a和c事列表与元组的扩展d = "abc" # a和c事列表与字符串的扩展a.extend(b) # extend()
2021-02-05 18:33:57
139
原创 Django框架之第一天
Djiango初体验虚拟环境·首先在D盘创建一个文件夹作为项目文件夹·系统环境变量的设置:WORKON_HOME 为此文件夹cmd进入你的项目文件夹,下载pipenvpip install pipenv #pip install表示下载某某某·pipenv shell 生成你的虚拟环境pipenv shell # 进入虚拟环境,这条命令让系统先是生成其次在进入虚拟环境·下载django 2.2的版本如果只输入Django系统会默认下载最新版在后面加==2.2下载一个稳定并且兼容本
2020-12-19 18:16:02
190
1
原创 MySQL影响服务器性能的几个方面
影响服务器性能的几个方面MySQL影响服务器性能的几个方面·服务器硬件·服务器的操作系统·数据库存储引擎选择·数据库参数配置·数据库结构设计和sql语句SQL性能下降的原因·查询数据写的不好·索引失效·关联查询太多join·服务器调优及各个参数设置SQL加载顺序·手写SQL的顺序select distinct <select _list>from <left_table>join <right_table> on &l
2020-11-13 20:35:13
187
原创 MySQL引擎之InnoDB
MySQL引擎之InnoDBMySQL5.5 及之后版本默认存储引擎,支持事务的ACID特性Innodb使用表空间进行数据存储innodb_file_per_tableON:独立表空间,tablename.ibdOFF:系统表空间:ibdataX X是一个数字系统表空间和独立表空间如何选择·系统表空间会产生IO瓶颈,刷新数据的时候是顺序进行的所以会产生文件的IO瓶颈·独立表空间可以同时向多个文件刷新数据Innodb存储引擎的特性·支持事务的ACID特性·Innodb支持行级锁,可以
2020-11-11 16:17:54
110
原创 MySQL引擎之MyISAM
MySQL引擎之MyISAM·MySQL5.5之前的版本默认存储引擎·MyISAM存储引擎表由MYD(数据文件)和MYI(索引文件)组成什么是锁?·锁主要作用是共享资源的并发访问·锁用于实现事务的隔离性锁的类型·共享锁(读锁),共享锁(也称读锁),针对同一份数据,多个读操作可以同时进行而不会互相影响独占锁(写锁),当前写操作没有完成前,它会阻断其他写锁和读锁锁的粒度·表级锁·行级锁MyISAM存储引擎特性·并发性与锁级别·表损坏修复·MyISAM表支持数据压缩myisampa
2020-11-11 16:11:31
160
原创 MySQL引擎之存储引擎
MySQL引擎之MyISAM首先要了解MySQL的分层·最上一层为网络连接层·第二层是MySQL服务层(MySQL Server)·第三层是存储引擎层·第四层为系统文件层服务层·第二层是MySQL的核心,MySQL核心层用很多功能,查询解析,sql执行计划分析,生气了执行计划优化,查询缓存。以及跨存储引擎的功能都在这一层实现:存储过程,触发器,视图等。存储引擎层·负责MySQL中数据的存储与提取。 服务器中的查询执行引擎通过API与存储引擎进行通信...
2020-11-10 17:04:15
100
原创 MySQL索引笔记之测试表练习
创建测试表# 创建测试表testcreate table test(title varchar(10));# 使用编辑器插入十万条数据form pymysql import connectdef main(): conn = connect(hose='127.0.9.2',port=3306 ,database='student',user='root',password='root',charset='utf8') cursor = conn.cursor() for i in
2020-10-29 20:04:03
166
原创 MySQL高级学习笔记之索引
索引·好比在图书馆找书,有索引就相当于图书馆管理员告诉你书在二楼A区·索引也是数据优化索引是什么索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度索引的目的索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sq...
2020-10-29 19:41:05
214
原创 MySQL事务练习之银行模拟转账
`模拟客户端1(左),客户端2(右)代码演示create table money(id int unsigned not null primary key auto_increment,money int unsigned not null);-- 查看表建立成功desc money;-- 添加数据 value()里面添加列的值insert into money value(1,100),(2,200),(3,0)-- 创建成功,查询select * from money;接下
2020-10-27 20:30:17
679
原创 数据结构之树
1.树·树的基本概念树是一种简单的非线性结构,是n个结点的有限集合。从逻辑结构看:。树中只有根结点没有前趋;。除根外,其余结点都有且仅有一个前趋;。树的结点,可以有零个或多个后继;。除根外的其他结点,都存在唯一-一条从根到该结点的路径。树是一种分支结构2树的基本术语2.树的基本术语(1 )根节点:在数据结构中,没有前件的结点只有一个,称为树的根结点。(2)子节点:在数据结构中,每一个结点可以有多个后件,它们都称为该节点的子节点。没有后件的结点称为叶子结点。(3)度:在数据结构
2020-10-22 20:01:46
179
原创 python基础笔记之集合
集合(set)·集合中只能存储不可变对象·集合中存储的对象是无序的(插入顺序和运行不同)·集合中不能出现重复的元素·set() 函数可以讲序列和字典转化为集合。 使用set()函数将字典转换为集合的时候,只会包含字典中的键(key)s = set()#创建一个空集合s = set('hello') 集合的使用·add() 向集合中添加元素·update() 将一个集合中的元素添加到另一个集合中集合的运算s1 = {1,2,3,4,5}s2 = {3,4,5,6,7}#交集
2020-10-18 20:28:36
209
原创 Python基础之 浅复制 遍历字典
浅复制复制·复制以后的对象,和原对象是独立的。修改一个不会影响另一个d = {'a':1,'b':2,'c':3}d2 = dd['b'] = 20print('d =',d)print('d2 =',d2)#这种不叫做复制,这里一个值改变会影响另一个值浅复制·浅复制只能复制字典的本身(外层字典),如果字典里还有个字典(内层字典)是不会被复制的d = {'a':{'name':'黑猫警长','age':18},'b':2,'c':3}d2 = d.copy()d2['a'
2020-10-18 19:54:51
188
原创 linux学习之基础
Linux目录结构快捷键·命令 touch #命令后面加名称创建文件 AA abc acb bca abb ls #查看 a* /a? /a??查看⽬录命令的使用查看当前目录路径清除终端内容小结:ls和tree是我们查看⽬录信息最常⽤的命令·ls只能查看⼀层⽬录信息·tree可以查看多层⽬录信息切换目录命令切换目录命令的使用注意:·cd命令切换⽬录时,这个⽬录必须存在·cd 后⾯不写⽬录等价于cd ~...
2020-10-16 16:54:51
83
原创 Linux基础命令笔记之操作系统
常见的操作系统·Windows·mac OS·Linux·iOS·Android操作系统的定义·操作系统直接运⾏在计算机上的系统软件, 它是控制硬件和⽀持软件运⾏的计算机程序操作系统的作用·向下控制硬件向上⽀持软件的运⾏,具有承上启下的作⽤·小结·操作系统是⼀个控制硬件和⽀持软件运⾏的计算机程序,只有安装了操作系统计算机才能进⾏正常⼯作...
2020-10-16 15:28:05
109
原创 使用Python连接数据库
Python与数据库连接from pymysql import *#1.连接数据库,在实例化的时候自动连接数据库#2.定义获取单条数据的方法,#3. 实现在程序执行的完毕的时候自动关闭连接,要使用del魔法方法class MyDb(object):#Python2里需要写object但在Python可以不写默认为object类#2.初始化时,自动连接数据库 def __init__(self):#实例化方法通过self调用 self.my_conn() #1.连接数据库 def m
2020-10-16 12:11:32
322
原创 Python基础之字典
字典 dict·数据结构 映射/键值对(mapping)·字典的作用其实和列表类似,用来储存对象的容器·字典与列表的区别:。列表储存数据的性能非常好,但是查询数据的性能很差,而字典相反·字典就像现实中新华字典,用拼音。部首查询方便查询·在字典当中每一个元素都有唯的一个名字通过这个名字可以快速查询到指定的元素这个唯的名 字我们一 般称之为键(key)通过key我们可以查 询value 值·所以字典我们也称之为键值对(key-value)·每个字典当中可以有多个键值对,每一个键值对我们可以称之为
2020-10-15 23:45:43
158
原创 python基础之元组
元组·首先元组是不可变序列(不可以为元组中的元素重新赋值)·一般情况不希望数据改变值就用元组,其余可以用列表 my_tuple = (1,2,3,4,5) print(my_tuple,type(my_tuple)注:数据类型为tuple·如果想取元组其中的元素4,也就是目标索引值: print(my_tuple[3])·如果元组不是空元祖里面至少有一个 , my_tuple //这样会输出Int类型 my_tuple = 10, //这里括号可以省略不写·元组的
2020-10-15 20:05:46
830
原创 MySQL学习之外键,自关联
自关联:·自关联可以简单的理解为自己和自己进行连接查询· 比如:一张areas表里有省市区,我们可以通过这张表来查询这个省对应的所有市区 SELECT * FROM area AS p INNER JOIN areas AS c NO p .`id`=c.`pid` HAVING p.name="湖南";外键外键介绍·MySQL的外键约束(FOREIGN KEY)是表的特殊字段。对于两个具有相关联关系的表而言,相关联字段中的主键所在的表就是主表(附表),外键所在的表叫做从表(子表)注意:
2020-10-14 11:29:47
976
原创 SQL操作数据库(DDL)
操作数据库(DDL)链接数据库输入密码,登录推出数据库exitquit查看已经创建的数据库SHOW DATABASES;注意·mysql不严格区分大小写·分号作为结束符,必须写查看数据库版本select version();创建数据库CREATE DATABASE 数据库名; CREATE DATABASE 数据库名 charset=utf8;注意charset:指定编码为utf8查看创建数据库的命令SHO
2020-09-29 19:51:07
176
原创 SQL基础语法笔记
SQLSQL介绍· SQL是结构化查询语言,是一种用来操作RDBMS(关系型数据库管理系统)的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过SQL操作oracle,sql server,mysql等关系型数据库。SQL语句主要分为· DDL语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象· DML语句:数据操纵语句,用于添加、删除、更新、和查询数据库记录,并检查数据完整性· DCL语句:数据控制语句,用于控制不同数据段直接许可和访问级别
2020-09-23 14:49:48
121
原创 数据库
这里写目录标题数据库数据库介绍数据库存储数据特点数据库分类数据库数据库介绍·数据库(database)简称DB,实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查等操作。数据库存储数据特点·持久化储存·读写速度极高·保证数据有效性·对程序支持非常好,容易扩展数据库分类·关系型数据库:可以保存现实生活中各种关系数据,数据库中存储主流数据库:MySQL,Oracle,SQLServer等·非关系型数据库
2020-09-22 19:51:43
501
原创 css复合选择器
复合选择器·子元素选择器·并集选择器· 并集选择器可以选择多组标签同时为他们定义相同的样式。通常用于集体声明.·并集选择器是各选择器通过英文逗号(, )连接而成,任何形式的选择器都可以作为并集选择器的一部分。·元素1,元素2{ } 为声明样式·约定的语法规范,我们并集选择器喜欢竖着写·定要注意,最后一个选择器不需要加逗号伪类选择器...
2020-07-05 11:23:48
87
原创 面向对象(下)
1.类属性1.2实例属性1.2实例方法1.4类方法·在类的内部使用@classmethod来修饰的方法属于类方法·类方法的第一个参数我们习惯写成cls 也会自动传递 cls就相当于类对象·实例方法可以通过类对象调用也可以通过实例对象调用·实例对象的功能相对来说更强大静态方法·在类中用@staticmethod来修饰的方法我们称之为静态方法·不需要制定任何的默认参数静态方法可以被类对象和实例对象调用·静态方法跟类本身无关,就是一个功能函数...
2020-06-19 11:19:43
98
原创 模块
1.模块1.1模块的简介。模块化就是将一个完整的程序分成一个一个的小模块。模块化的优点1.方便开发并且方便维护2.模块可以复用1.2模块·在Python中一个py文件就是一个模块·在一个模块中引入外部模块1.第一种办法·import模块名(模块 名就是Python的文件名)·可以引入同一个模块多次但是模块只会执行一次2.第二种办法· import 模块名 as 模块别名·print一个必须是模块的别名··如果这个模块直接运行,那么——name——默认的字符串——name——
2020-06-17 21:56:58
108
原创 面向对象
1. ⾯向对象简介·Python是⼀⻔⾯向对象的编程语⾔·所谓⾯向对象的语⾔,简单理解就是语⾔中的所有操作都是通过对象来进⾏的·⾯向过程。⾯向过程指将我们的程序分解为⼀个⼀个步骤,通过对每个步骤的抽象来完成程序。这种编写⽅式往往只适⽤于⼀个功能,如果要实现别的功能,往往复⽤性⽐较低。这种编程⽅式符号⼈类的思维,编写起来⽐较容易1.妈妈穿⾐服穿鞋出⻔2.妈妈骑上电动⻋3.妈妈到超市⻔⼝放好电动⻋4.妈妈买⻄⽠5.妈妈结账6.妈妈骑电动⻋回家7.到家孩⼦吃⻄⽠·⾯向对象的编程语⾔
2020-06-11 22:51:38
145
原创 类的复用
1.类的复用——组合(has-a)·汽车类 Car 由引擎 Engine、车灯 Light、车窗 Window、轮胎 Wheel、车门 Door 等组成public class Car { // a Car has-a a Engine private String type; private Door[] d; private Window[] w; private Engine en; private Wheel[] wh; private Light[] l; C
2020-06-11 11:04:44
680
原创 类,接口
1.类我是一个萌新接下来是我的随堂笔记·父类和子类都可而已重写·如果父类是抽象类,子类是具体类那么,子类必须要重写(@Override)·接口(interface)是一种特殊的抽象类,没有属性,只有具体的方法和常量·接口中的方法不能是私有的,只能由公有的·抽象的方法和常量只能用final,public, static,abstract·抽象的方法访问权限只能是public和protected·.接口中的抽象方法可以省略public和abstract关键字, 简写:返回值类型方法名(参数)e
2020-06-11 10:37:20
119
原创 装饰器
1.装饰器1.1装饰器的引入。我们可以修改函数中的代码来完成这个需求,但是会产生一些问题。如果要修改的函数过多,修改起来会比较麻烦。不方便后的维护。这样会违反开闭原则(ocp)程序的设计 要求开发对程序的扩展,要求关闭对程序的修改1.2装饰器的使用·例子:用来对其他的函数进行扩展,使其他的函数可以在执行前打印开始执行,执行结束后打印执行结束想对上图函数进行扩展就需要调用这个函数细节添加一参数·例如像start_end()这一类的函数我们就称之为装饰器·通过装饰器,可以在不修改原来函
2020-06-08 21:45:23
127
原创 高阶函数,闭包
1.高阶函数2.闭包·将函数作为返回值返回就称之为闭包·通过闭包通过闭包可以创建些在只有当前函数才能访问的变量·可以将一些私有的数据藏到闭包中·形成闭包的条件。函数嵌套。将内部函数作为函数返回。内部函数必须要使用外部函数的变量a= 123def fn1():print('我是fn1')#将内部函数作为返回值返回return fn1r = fn()r ()#r这个函数总是能访问到fn()内部的变量#print(fn())...
2020-06-08 21:05:20
102
原创 命名空间,递归函数
命名空间·实际命名空间就是一个字典,专门用来储存变量的字典·local() 用来获取当前作用域的命名空间·返货的是一个字典·向scope中添加一个KeyValue(就相当于在全局中创建一个变量)·globals()#这个函数可以在任意位置获取全局的命名空间递归函数·尝试求10的阶乘1! = 12! = 1 * 2= 23! = 1 * 2 * 3= 6…·如图是十的阶乘·#下面定义一个函数来实现任意数的阶乘。·递归函数。从前有座山山里有座庙…。递归简单理解就是自己去
2020-06-05 22:05:43
405
原创 函数,参数,字符串,作用域
1.函数·函数也是一个对象2.函数的参数参数的传递方式·参数分为形参和实参·位置参数:位置参数就是将对应位置的实参复制给对应位置的形参·关键字传参:关键字参数可以不按照形参定义的顺序去传递,而根据参数名进行传递实参的类型`实参可以传递任意类型的对象 包括函数·函数在调用时解析器是不会检查函数类型的不定长参数·定义函数时,可以在形参前面加一个*,这样这个形参可以获取到所有的实参,它会将所有的实参保存到一个元组中可以求任意数的和··上图片实际是装包·举个例子·带星号只能有一个,如果
2020-06-05 20:53:49
231
原创 基本数据类型简要概述
1.几个概念·https://docs.python.org/3/library/functions.html是官网函数库·表达式类似于数学公式·表达式不会对我们的程序产生实质性的影响,仅仅用于计算结果·语句。在程序中一般用语句完成功能 例如print()a=4等。代码块特点要执行都执行·程序。就是有一条一条的语句与表达式构成·函数。print()。函数就是一个语句,函数是为了完成一个特定功能。形如xxx()。函数的分类 内置函数 (内建函数)函数就是编程语言自带的。参数
2020-06-02 21:33:05
252
原创 元组字典细节简概
1.元组·元组类类似列表·创建元组·元组的解包2.字典·字典属于- -种新的数据结构印射(mapping)·作用来存储对象的容器·列表存储数据的性能特别好但是查询的数据性能比较差,字典与之相反·字典当中每一个元素都有唯一的一个名字。通过这个唯一的名字快速查找到指定的元素·唯一v的名字称之为key通过Key来查询值值称之为Valuel。字典的键是不能重复的,如果重复,后面会替换前面的2.1双值序列·序列中有两个值 [3,4] ‘mn’,子序列 ,如果序列中的元素也是序列,那么我们就
2020-06-01 22:10:52
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人