自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路虽远,行则必至!

积跬步,至千里

  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 深入浅出Python——Python高级语法之异常、模块、包

前言:本博文主要讲解Python异常、模块、包,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢!文章目录一、了解异常二、异常的写法1. 语法2. 快速体验3. 捕获指定异常3.1 语法3.2 体验3.3 捕获多个指定异常3.4 捕获异常描述信息3.5 捕获所有异常4. 异常的else5. 异常的finally三、异常的传递四、自定义异常五、模块1. 导入模块1.1 导入模块的方式1.2 导入方式详解1.2.1 import1.2.2

2020-08-02 21:58:05 2002 3

原创 深入浅出Python——Python高级语法之面向对象

前言:本博文主要讲解Python文件操作的写法,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢!文章目录一、理解面向对象二、类和对象1. 理解类和对象1.1 类1.2 对象2. 面向对象实现方法2.1 定义类2.2 定义类2.3 self三、添加和获取对象属性1. 类外面添加对象属性2. 类外面获取对象属性3. 类里面获取对象属性四、魔法方法1. `__init__()`1.1 体验`__init__()`1.2 带参数的`__ini

2020-08-02 19:26:34 3000 3

原创 Python网络编程之udp

文章目录一、什么是网络二、使用网络的目的三、什么是ip地址一、什么是网络网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。网络是人类发展史来最重要的发明,提高了科技和人类社会的发展。网络就是一种辅助双方或者多方能够连接在一起的工具。二、使用网络的目的为了联通多方进行通信用的,即把数据从一方传递给另外一方。之前的编程都是单机的,即不能和其他电脑上的程序进行通信。为了让在不

2020-08-19 09:54:37 1218 1

原创 Python并发编程之进程、线程、协程对比

友情链接:文章目录一、举例二、总结一、举例有一个老板想要开个工厂进行生产某件商品(例如剪子)。他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的为了能够生产剪子而准备的资源称之为:进程。只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程。这个老板为了提高生产率,想到3种办法:在这条生产线上多招些工人,一起来做剪子,这样效率是成倍増长,即单进程 多线程方式。老板发现这条生产线上的工

2020-08-17 16:32:02 1161

原创 Python并发编程之协程(greenlet、gevent)

文章目录一、greenlet1.1 安装方式1.2 greenlet的使用二、gevent2.1 安装方式2.2 gevent的使用2.3 gevent切换执行2.4 给程序打补丁一、greenlet为了更好使用协程来完成多任务,Python中的greenlet模块对其封装,从而使得切换任务变的更加简单。1.1 安装方式使用如下命令安装greenlet模块:sudo pip3 install greenlet1.2 greenlet的使用from greenlet import greenl

2020-08-17 16:27:40 618 2

原创 Python并发编程之协程【必知必会】

前言:前面我们已经讲解过了进程和线程,本博文将讲解实现多任务的另一种方式——多协程。文章目录一、协程概念二、协程和线程差异三、简单实现协程一、协程概念协程,又称微线程,纤程。英文名Coroutine。协程是Python中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机,我们可以把一个协程切换到另一个协程。只要这个过程中保存或恢复CPU上下文那么程序还是可以运行的。通俗的理解:在一个线程中的某个函数,

2020-08-17 16:24:31 553

原创 Python中生成器详解

前言:在前面的博文里,已经介绍了生成器:Python迭代器与生成器总结【建议收藏】,本博文将系统介绍Python中的生成器。文章目录一、生成器简介二、使用()创建生成器三、使用yield创建生成器四、使用send唤醒一、生成器简介利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即

2020-08-17 16:23:20 567

原创 Python中迭代器详解

前言:在前面的博文里,已经介绍了迭代器:Python迭代器与生成器总结【建议收藏】,本博文将系统介绍Python中的迭代器。文章目录一、迭代器简介二、可迭代对象三、判断一个对象是否可以迭代四、可迭代对象的本质五、iter()函数与next()函数六、判断一个对象是否是迭代器七、迭代器Iterator八、for...in...循环的本质一、迭代器简介迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退

2020-08-17 16:21:26 1104

原创 Python进程、线程对比【建议收藏】

一、功能进程:能够完成多任务,比如在一台电脑上能够同时运行多个QQ。线程:能够完成多任务,比如一个QQ中的多个聊天窗口。二、定义的不同进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。三、区别一个程序至少有一个进程,一个进程至少有一个线程。线程的

2020-08-16 18:10:19 509

原创 Python并发编程之线程(死锁)

前言:本博文主要讲解Python并发编程中线程的死锁。死锁就是使用互斥锁不当而产生的后果,那么我们应该如何避免、解决呢?请看下文!文章目录一、死锁二、避免死锁三、银行家算法介绍3.1 背景知识3.2 问题描述3.3 案例总结一、死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下面看一个死锁的例子:import threadingimport timeclass MyThread1(thr

2020-08-16 18:07:38 514 2

原创 Python并发编程之线程(同步、互斥锁)

前言:本博文是对Python并发编程之线程的知识延伸,主要讲解:同步、互斥锁。文章目录一、同步的概念二、解决线程同时修改全局变量的方式三、互斥锁的概念四、使用互斥锁完成2个线程对同一个全局变量各加100万次的操作五、上锁解锁过程分析一、同步的概念同步就是协同步调,按预定的先后次序进行运行。 如:你说完,我再说。"同"字从字面上容易理解为一起动作;其实不是,"同"字应是指协同、协助、互相配合。如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B

2020-08-16 18:07:00 620

原创 Python多线程中的threading

前言:在前面的博文里,我介绍了实现Python多任务的一种方式——多进程,那么本博文将介绍另一种方式——多线程。文章目录一、使用threading模块1.1 使用threading模块1.1.1 单线程执行1.1.2 多线程执行1.2 主线程会等待所有的子线程结束后才结束一、使用threading模块Python的thread模块是比较底层的模块,Python的threading模块是对thread做了一些包装的,可以更加方便的被使用。1.1 使用threading模块1.1.1 单线程执行im

2020-08-16 18:06:19 762

原创 深入理解Python中的GIL(全局解释器锁)

前言:本博文主要讲解Python中的GIL(全局解释器锁),本人经过查阅多个资料,摒弃一些较官方的描述,用自己的语言整理并加以补充,如果有描述有误的地方,还望读者在评论区指出,谢谢!文章目录一、GIL是什么二、为什么会有GIL三、GIL的副作用四、GIL的总结五、GIL面试题一、GIL是什么GIL:又称全局解释器锁。作用就是限制多线程同时执行,保证同一时间内只有一个线程在执行。线程非独立的,所以同一进程里线程是数据共享,当各个线程访问数据资源时会出现“竞争”状态,即数据可能会同时被多个线程占用,造成数

2020-08-14 20:23:20 1999 3

原创 Python并发编程之进程(僵尸进程、孤儿进程)

文章目录一、基本概念二、僵尸进程三、孤儿进程2.1 multiprocessing2.2 fork四、知识扩展一、基本概念在前面的博文里,我们都知道:正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程到底什么时候结束。 当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。也就是说:父进程会默认等待子进程的执行,在所有子进程都结束之后,父进程再结束。二、僵尸进程僵

2020-08-14 20:22:31 698

原创 Python并发编程之进程总结

前言:本博文主要讲解Python进程以及状态。文章目录一、进程二、进程的状态三、进程间不同享全局变量一、进程程序: 例如xxx.py这是程序,是一个静态的。进程: 一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。进程是完成多任务的一种方式。二、进程的状态工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态。就绪态:运行的条件都已经慢去,正在等在cpu执行。执行态:cpu正在执行其功能。

2020-08-14 17:39:09 435

原创 Python进程通信之Queue

前言:Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。本博文主要讲解:进程间通信的Queue。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork浅谈Python并发编程之进程池文章目录一、Queue的使用二、Queue的实例三、进程池中的Queue一、Queue的使用我们可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Que

2020-08-13 22:31:32 613

原创 Python并发编程之进程池

前言:本博文主要讲解Python并发编程中的进程池(Pool)。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork浅谈Python并发编程之进程(守护进程、锁、信号量)文章目录一、进程池Pool二、apply堵塞式三、apply、apply_async的区别3.1 apply阻塞式3.2 apply_async异步非阻塞式一、进程池Pool引言:当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态

2020-08-11 21:42:48 586

原创 Python并发编程之进程(守护进程、锁、信号量)

前言:本博文是对Python并发编程之进程的知识延伸。友情链接:浅谈Python多进程中的multiprocessing浅谈Python多进程中的fork文章目录一、守护进程1.1 守护进程的概念1.2 守护进程的示例1.3 多个子进程的情况一、守护进程1.1 守护进程的概念首先我们都知道:正常情况下,主进程默认等待子进程调用结束之后再结束,守护进程在主进程所有代码执行完毕之后,自动终止。当然我们也可以使用kill -9 进程号,杀死进程。那么接下来,我们看一下守护进程的语法:进程对象

2020-08-09 18:01:34 715

原创 Python中time模块的用法

前言:在平常的代码中,我们常常需要与时间打交道。那么在Python中,与时间处理有关的模块就包括:time,datetime以及calendar,本篇博文讲主要讲解time模块。官方文档:time-时间访问和转换文章目录一、表示时间的方式二、常用函数一、表示时间的方式时间戳表示法: 即以整型或浮点型表示的是一个以秒为单位的时间间隔。这个时间的基础值是从1970年的1月1号零点开始算起。格式化的时间字符串: 即以格式化字符串的格式输出时间形式。元组格式表示法: 即一种Python的数据结构表示。这

2020-08-08 23:18:14 13569

原创 Python多进程中的fork

前言:当我们要实现Python多进程时,可以使用os模块中的fork()函数和multiprocessing模块,那么它们之间的用法和区别呢?下来,我们着重进行讲解:文章目录一、两者区别二、fork()三、getpid()、getppid()四、多进程修改全局变量五、多次fork问题一、两者区别首先,我们要搞清楚这两个模块的区别是什么?fork()是基于Unix/Linux内核的函数,在windows中无法使用。multiprocessing模块作为跨平台的存在。Unix/Linux操作系

2020-08-08 23:13:26 2052

原创 Python多进程中的multiprocessing

前言:一、多任务的引入在现实生活中,有很多的场景中的事情是同时进行的,比如开车的时候,手和脚共同来驾驶汽车;再比如,唱歌跳舞也是同时进行的。下来,我们在程序里面,模拟一下“唱歌跳舞”这件事情,如下:from time import sleepdef sing(): for i in range(3): print("正在唱歌...%d"%i) sleep(1) def dance(): for i in range(3):

2020-08-08 23:11:52 2582 2

原创 Python迭代器、生成器实现斐波拉契数列【必知必会】

友情链接:深究Python迭代器与生成器(建议收藏)Python实现斐波拉契数列和冒泡排序文章目录一、迭代器实现二、生成器实现三、生成器+itertools实现一、迭代器实现class myFibs(object): def __init__(self, control): self.a = 0 self.b = 1 self.control = control self.item_index = 0

2020-08-07 19:44:55 731

原创 SQL语句中Group BY和Rollup以及cube用法

前言:本博文主要讲解SQL语句中Group BY和Rollup以及cube用法以及区别。文章目录一、区别汇总:二、实例演示:2.1 创建表2.2 查询表2.3 显示结果三、区别查询:3.1 GROUP BY3.2 ROLLUP3.3 CUBE一、区别汇总:CUBE 生成的结果集显示了所选列中值的所有组合的聚合。ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。二、实例演示:2.1 创建表CREATE TABLE DEPART( 部门 char(10), 员工 char(

2020-08-06 08:06:28 2040 4

原创 Excel部分常用函数及使用方法汇总

前言:本博文只整理了Excel里常用的部分函数,更多函数请访问:excel函数公式大全文章目录一、日期与时间函数1. DAY函数2.DATE函数3.WEEKDAY函数二、数学与三角函数1.SUM函数2.SUMIF3.ROUND4.ABS函数5.INT函数6.SIGN函数7.POWER函数三、统计函数1.AVERAGE函数2.MAX函数3.MIN函数4.COUNT5.COUNTA6.COUNTIF函数7.RANK一、日期与时间函数1. DAY函数函数名称:DAY主要功能:返回一个月中第几天的

2020-08-06 07:42:18 1747

原创 解决Xshell连接服务器失败:Could not connect to ‘192.168.191.128‘ (port 22): Connection failed.

前言:今天用Xshell连接虚拟机(Liunx)时,发生了这一项错误。翻阅了好多资料,终于解决了,于是记录一下,分享给大家,避免大家遇到同样的问题。文章目录一、问题描述二、解决问题三、进行连接一、问题描述首先我们使用ifconfig在Liunx(Ubuntu)中查询下网络ip,经查询为:192.168.191.128下来,我们打开Xshell,配置相关信息,进行连接:测试连接,报错如下:二、解决问题首先我们在Liunx(Ubuntu)中通过ps -e|grep ssh命令判断是否安装

2020-08-04 20:28:28 63156 18

原创 Python超详细学员管理系统【面向对象实现】

前言:本程序——“学员管理系统”利用Python函数进行实现。更多函数知识请访问:深入浅出Python——Python高级语法之面向对象文章目录一、系统需求二、准备程序文件1. 分析2. 创建程序文件三、书写程序1. student.py1.1 程序代码2. managerSystem.py2.1 定义类2.2 管理系统框架3. main.py4. 定义系统功能函数4.1 添加功能4.2 删除学员4.3 修改学员信息4.4 查询学员信息4.5 显示所有学员信息4.6 保存学员信息4.7 加载学员信息四、总

2020-08-02 22:27:51 2047

原创 Python伪私有属性总结

前言:在前面的博文里,我介绍了Python中的面向对象,详情见:深入浅出Python——Python高级语法之文件操作,本文将主要讲解with open() as读写文件的优点与作用。

2020-08-02 20:49:08 805

SQL语句中Group BY 和Rollup以及cube用法.txt

SQL Server中的用法为group by colomn with [rollup|cube],首先要弄明白rollup 和cube,就要知道group by的用法,group by 为对列进行分组,只展现分组统计的值,而 rollup 为分层次展现,cube 为展现列中所有层次。

2020-05-24

07-ajax.pdf

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。此文档是关于Ajax相关的知识,深入浅出的讲解了Ajax的应用以及写法,对于刚入门的新手有很大的帮助。同时,文档里也讲解了跨域请求以及jsonp的相关知识,值得一看。

2019-08-22

WEB前端面试选择题解答(共36题).pdf

此文档讲解了WEB前端经典的36道选择题,文档中会有详细的描述与讲解,对于自我能力的进阶和前端知识的巩固,都有很重大的意义和价值。

2019-08-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除