
Python
主要是Python基础
梓栋Code
这个作者很懒,什么都没留下…
展开
-
Django项目开发:图书后台管理系统
大家好,我是梓栋,今天我给大家分享一个Django入门级开发项目—图书后台管理系统,想要源码资料的小伙伴,请关注微信公众号:梓栋Code,回复 “009”获取!一.项目介绍1.管理员登录注册(1)注册页面(2)登录页面2.出版社管理页面(1) 添加出版社(2)出版社列表(3)修改出版社(4)删除出版社3.图书管理页面(1)添加图书(2)图书列表(3) 修改图书(4)删除图书4.作者管理页面(1)添加作者(2)作者列表(3)修改作者(4)原创 2021-10-30 19:29:53 · 12047 阅读 · 6 评论 -
飞机大战编程
飞机大战(没有战机爆炸)import pygamefrom pygame.locals import *import randomimport timeclass HeroBullet():#定义一个战机子弹的类def init(self,x,y,windows):self.x=xself.y=yself.windows=windowsself.pic=pygame.image...原创 2019-03-13 19:02:38 · 7976 阅读 · 3 评论 -
python网络编程:Queue的使用、队列阻塞、多线程、死锁
一、进程间的通信1.Queue的使用步骤1:导入模块from multiprocessing import Queue步骤2:创建一个队列q = Queue(3)#可接一个整数,表示队列的容量,如果省略则表示不设上限。print(q.empty())#True步骤3:往队列添加消息格式:put(obj, block=True, timeout=None)obj:消息对象q....原创 2019-03-13 19:42:54 · 3850 阅读 · 0 评论 -
数据结构:树与树算法
一、树、二叉树、满二叉树、完全二叉树、不完全二叉树的性质1.树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点...原创 2019-03-23 15:53:09 · 2512 阅读 · 0 评论 -
python中斐波那契系数实现的几种方法
斐波那契系数的原理:在第一个月有一对刚出生的小兔子,在第二个月小兔子变成大兔子并开始怀孕,第三个月大兔子会生下一对小兔子,并且以后每个月都会生下一对小兔子。 如果每对兔子都经历这样的出生、成熟、生育的过程,并且兔子永远不死,那么兔子的总数是如何变化的?我们不妨先来看个图:第一个月只有一对兔宝宝,1对兔子。第二个月兔宝宝变成大兔子,1对兔子。第三个月大兔子生了一对兔宝宝,一大一小2对兔子...原创 2019-04-07 10:37:00 · 3420 阅读 · 0 评论 -
对python中闭包的理解
闭包的概念:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。一般情况下,在我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。#闭包函数的实例...原创 2019-04-15 23:17:20 · 2709 阅读 · 0 评论 -
PyCharm中如何修改文件默认打开方式(以自带数据库db.sqlite3为例)
PyCharm中很多时候,由于自己疏忽会修改一些软件暂时无法识别的文件的默认打开方式,这个有时候真的很气人。下面就以自带数据库db.sqlite3为例来说说如下图:很多时候PyCharm由于暂时无法识别文件类型就会如上图所示的情况,这时候可能双击打开会出现这种情况。假如我选最后一个机会出现这种情况,如下图:那如何解决呢?解决方案如下:在PyCharm中进行如下操作:File--...原创 2019-04-29 20:05:43 · 13769 阅读 · 2 评论 -
避免死锁方法之银行家算法
文章目录死锁银行家算法原理银行家算法具体介绍要介绍银行家算法应该先简单说一下死锁:死锁死锁概念:在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源时,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。死锁的两种情况:同一个线程先后两次调用lock,在第二次调用时,由于锁已经被自己占用,该线程会挂起等待自己释放锁,由于该线程已被挂起而没有机...原创 2019-06-03 22:34:40 · 9006 阅读 · 0 评论 -
Python 正则表达式匹配 手机号,身份证号
今天工作很头疼,这是我千辛万苦找到的# 手机号re.search("^(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}$",name):# 身份证号re.search("/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))...原创 2019-09-17 16:20:05 · 4977 阅读 · 1 评论 -
Python网络编程——TCP/IP协议
1、网络编程就是通过网络让不同计算机上运行的程序可以进行通信。2、软件间的通信分为两种 应用类程序(QQ)和web类程序(百度)3、客户端:就是常用的程序QQ;服务端:一致运行着个别人的提供服务的机器4、软件开发架构:C/S 架构(客户端和服务器的架构)和B/S架构(浏览器端与服务器端架构)5、IP地址是电脑在网络世界中全球唯一标识,地址是一个32位的二进制数,被分割为4个“8位二进制...原创 2019-03-12 21:08:42 · 4793 阅读 · 0 评论 -
python中的堆栈
栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In...原创 2019-03-17 10:06:32 · 22015 阅读 · 0 评论 -
函数的定义及其扩展
定义函数def dylc():print(‘1楼 西装’)print(‘2楼 女装’)print(‘3楼 运动装’)floor=int(input(‘请输入层数:’))if floor1:print(‘西单大悦城1楼欢迎你’)dylc()print(‘你现在1楼’)elif floor2:print(‘西单大悦城2楼欢迎你’)dylc()print(‘你现在2楼’)el...原创 2019-02-26 08:54:46 · 2649 阅读 · 0 评论 -
集合和及其操作
a=[1,2,3,4,5,6,7,8,9] #a=[2,1,4,3,6,5,8,7,10,9]第一种i=0while i<len(a)-1:t=a[i]a[i]=a[i+1]a[i+1]=ti+=2print(a)第二种for i in range(len(a),2)t=a[i]a[i]=a[i+1]a[i+1]=tprint(a)a=‘12345678...原创 2019-02-23 10:15:27 · 2419 阅读 · 0 评论 -
Python深浅copy
在python里对对象进行拷贝有三个,即赋值,深拷贝,浅拷贝。而对象又分为两种,一种是不可变对象(字符串、元组、数字 ),一种是可变对象(列表、字典)。而深浅拷贝有三种情况:拷贝的是不可变对象,对于不可变对象来说,深浅拷贝都一样的,即便是用深拷贝,也都是一样的id,如果要重新赋值,也只是创建一个新的对象,替换旧的对象。所以对于不可变对象来说,不管怎么拷贝,它的地址、值都是一样的。拷贝的是可变...原创 2019-03-15 21:39:12 · 2387 阅读 · 0 评论 -
python的单向列表和双向列表(用程序来实现)
1、链表(Linked list)链表是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。2.单向链表单向链表每一个节点包含两个域,一个信息域(元素域)和一个连接域。这个连接指向链表中的下一个节点,而最后一个节点的连接域则指向一个空值如上图:表元素域elem用来存放具体的数据连接域next用...原创 2019-03-16 16:06:06 · 3793 阅读 · 0 评论 -
python中的进程、线程、协程,它们的区别和联系
1.进程的定义:进程是系统进行资源分配和调度的一个独立单位。2.线程的定义:线程是进程的一个实体,是CPU调度和分派的基本单位,线程是比进程更小的能够独立运行的单位3.协程的定义:协程则是程序级别的由程序根据需要自己调度。在一个线程中会有很多函数,我们把这些函数称为子程序,在子程序执行过程中可以中断去执行别的子程序,而别的子程序也可以中断回来继续执行之前的子程序,这个过程就称为协程。...原创 2019-03-16 19:25:52 · 4558 阅读 · 0 评论 -
什么是线程锁和进程锁?什么是死锁,死锁产生的原因和解决锁的办法
线程锁:当多个线程几乎同时修改一个共享数据的时候,需要进行同步控制,线程同步能够保证多个线程安全的访问竞争资源(全局内容),最简单的同步机制就是使用互斥锁。某个线程要更改共享数据时,先将其锁定,此时资源的状态为锁定状态,其他线程就能更改,直到该线程将资源状态改为非锁定状态,也就是释放资源,其他的线程才能再次锁定资源。互斥锁保证了每一次只有一个线程进入写入操作。从而保证了多线程下数据的安全性...原创 2019-03-18 08:07:35 · 8865 阅读 · 1 评论 -
python中的生产者与消费者
在并发编程中,如果生产者处理速度很快,而消费者处理速度比较慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这个等待的问题,就引入了生产者与消费者模型。让它们之间可以不停的生产和消费什么是生产者消费者模式?生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待...原创 2019-03-17 08:41:29 · 2430 阅读 · 0 评论 -
python算法—排序算法和查找算法
一、排序算法定义排序算法(英语:Sorting algorithm)是一种能将一串 数据依照特定顺序进行排列的一种算法。1.冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由...原创 2019-03-17 09:25:10 · 2769 阅读 · 0 评论 -
python数据结构:队列
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符合我们...原创 2019-03-17 09:42:59 · 2593 阅读 · 0 评论