自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 面向过程编程

面向过程编程面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么……基于该思想编写程序就好比在设计一条流水线,面向对称编程其实是一种机械式的思维方式。当我们写登录功能,我们首先需要输入账号、密码,然后认证两次...

2019-09-27 10:41:00 152

转载 内置函数

内置函数一、内置函数更多内置函数:https://docs.python.org/3/library/functions.html?highlight=built#ascii1.1 掌握解码字符。res = '你好'.encode('utf8')print(res)b'\xe4\xbd\xa0\xe5\xa5\xbd'res = bytes('你好', encodin...

2019-09-27 10:40:00 153

转载 匿名函数

匿名函数一、有名函数我们之前定的函数都是有名函数,它是基于函数名使用。def func(): print('from func')func()func()func()print(func)from funcfrom funcfrom func<function func at 0x10518b268>二、匿名函数匿名函数,他没有绑定名字,...

2019-09-27 10:39:00 140

转载 递归

递归一、什么是函数递归?函数的嵌套调用是:函数嵌套函数。函数的递归调用:它是一种特殊的嵌套调用,但是它在调用一个函数的过程中,又直接或间接地调用了它自身。def foo(): print('from foo') foo()foo() # 进入死循环如果递归函数不断地调用函数自身,那么这个递归函数将会进入一个死循环,因此我们应该给递归函数一个明确的结束条件。...

2019-09-27 10:34:00 106

转载 生成器

生成器一、yield关键字yield的英文单词意思是生产,在函数中但凡出现yield关键字,在调用函数,就不会继续执行函数体代码,而是会返回一个值。def func(): print(1) yield print(2) yieldg = func()print(g)<generator object func at 0x0000025...

2019-09-27 10:30:00 87

转载 字典生成式

字典生成式一、字典生成式print({i: i**2 for i in range(10)}){0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}二、zip()方法keys = ['name', 'age', 'gender']values = ['nick', 19, 'male']res ...

2019-09-27 10:28:00 189

转载 列表推导式

列表推导式一、列表推导式[expression for item1 in iterable1 if condition1for item2 in iterable2 if condition2...for itemN in iterableN if conditionN]类似于res=[]for item1 in iterable1: if condition1...

2019-09-27 10:28:00 172

转载 三元表达式

三元表达式一、三元表达式条件成立时的返回值 if 条件 else 条件不成立时的返回值x = 10y = 20print(f"x if x > y else y: {x if x > y else y}")x if x > y else y: 20其实就是将if...else代码写成一行的方式,在实际中用的不多。转载于:https://www.cn...

2019-09-27 10:27:00 233

转载 迭代器

迭代器迭代器:迭代的工具。迭代是更新换代,如你爷爷生了你爹,你爹生了你,迭代也可以说成是重复,并且但每一次的重复都是基于上一次的结果来的。如计算机中的迭代开发,就是基于软件的上一个版本更新。以下代码就不是迭代,它只是单纯的重复while True: print('*'*10)一、可迭代对象python中一切皆对象,如x = 1name = 'nick'lis = [...

2019-09-27 10:26:00 92

转载 装饰器

装饰器一、无参装饰器1.1什么是装饰器器指的是工具,而程序中的函数就是具备某一功能的工具,所以装饰器指的是为被装饰器对象添加额外功能。因此定义装饰器就是定义一个函数,只不过该函数的功能是用来为其他函数添加额外的功能需要注意的是:装饰器本身其实是可以任意可调用的对象被装饰的对象也可以是任意可调用的对象1.2为什么要用装饰器如果我们已经上线了一个项目,我们需要修改某一个方...

2019-09-27 10:25:00 105

转载 闭包函数

闭包函数回顾:函数对象:可以将定义在函数内的函数返回到全局使用,从而打破函数的层级限制。名称空间与作用域:作用域关系在函数定义阶段时就已经固定死了。与调用位置无关,即在任意位置调用函数都需要跑到定义函数时找到作用域关系def f1(): x = 1 def inner(): print(x) return innerfunc ...

2019-09-27 10:24:00 119

转载 协程基础

协程基础一、引言之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把CPU的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。随着我们对于效率的追求不断提高,基于单线程来实现并发又成为一个新的课题,即只用一个主线程(很明显...

2019-09-22 17:52:00 101

转载 Python程序中的线程操作-concurrent模块

Python程序中的线程操作-concurrent模块一、Python标准模块——concurrent.futures官方文档:https://docs.python.org/dev/library/concurrent.futures.html二、介绍concurrent.futures模块提供了高度封装的异步调用接口ThreadPoolExecutor:线程池,提供异步调用...

2019-09-22 17:51:00 112

转载 Python程序中的线程操作-线程队列

Python程序中的线程操作-线程队列一、线程队列queue队列:使用import queue,用法和进程Queue一样当必须在多个线程之间安全地交换信息时,队列在线程编程中尤其有用。二、先进先出class queue.Queue(maxsize=0)import queueq=queue.Queue()q.put('first')q.put('second')q....

2019-09-22 17:50:00 189

转载 Python程序中的线程操作-锁

Python程序中的线程操作-锁一、同步锁1.1多个线程抢占资源的情况from threading import Threadimport os,timedef work(): global n temp=n time.sleep(0.1) n=temp-1if __name__ == '__main__': n=100 l=[...

2019-09-22 17:50:00 130

转载 Python程序中的线程操作-守护线程

Python程序中的线程操作-守护线程一、守护线程无论是进程还是线程,都遵循:守护XX会等待主XX运行完毕后销毁。需要强调的是:运行完毕并非终止运行。对主进程来说,运行完毕指的是主进程代码运行完毕对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕。1.1详细解释主进程在其代码结束后就已经算运行完毕了(守护进程在此就被回收),然后...

2019-09-22 17:49:00 133

转载 GIL全局解释器锁

GIL全局解释器锁一、GIL全局解释器锁GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。# 为何要有GIL? 因为Cpython解释器自带垃圾回收机制不是线程安全的。# 如果不对垃圾回收机制线程做任何处理,也没有GIL锁行不行? 提示:如果是问题的这种情况,...

2019-09-22 17:48:00 73

转载 Python程序中的线程操作-创建多线程

Python程序中的线程操作-创建多线程一、Python线程模块的选择Python提供了几个用于多线程的编程的模块,包括thread、threading和Queue等。thread和threading模块允许程序员创建和管理线程。thread模块提供了基本的线程和锁的支持,threading提供了更高级别、功能更强大的线程管理的功能。Queue模块允许用户创建一个可以用于多个线程之间...

2019-09-22 17:48:00 132

转载 内存中的线程

内存中的线程一、内存中的线程多个线程共享同一个进程的地址空间中的资源,是对一台计算机上多个进程的模拟,有时也称线程为轻量级的进程。而对一台计算机上多个进程,则共享物理内存、磁盘、打印机等其他物理资源。多线程的运行与多进程的运行类似,是CPU在多个线程之间的快速切换。不同的进程之间是充满敌意的,彼此是抢占、竞争CPU的关系,如迅雷会和QQ抢资源。而同一进程是由一个程序员的程序创建...

2019-09-22 17:47:00 169

转载 进程与线程的区别

进程和线程的区别一、进程和线程的关系线程与进程的区别可以归纳为以下4点:地址空间和其他资源(如打开文件):进程间相互独立,统一进程的个线程间共享。某进程内的线程在其他进程不可见。通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信—需要进程同步和互斥手段的辅助,以保证数据的一致性。调度和切换:线程上下文切换比进程上下文切换要快得多在多线程操作系统中...

2019-09-22 17:41:00 88

转载 使用线程的场景

使用线程的实际场景一、使用线程的实际场景开启一个字处理软件进程,该进程肯定需要办不止一件事情,比如监听键盘输入,处理文字,定时自动将文字保存到硬盘,这三个任务操作的都是同一块数据,因而不能用多进程。只能在一个进程里并发地开启三个线程,如果是单线程,那就只能是,键盘输入时,不能处理文字和自动保存,自动保存时又不能输入和处理文字转载于:https://www.cnblogs.co...

2019-09-22 17:41:00 109

转载 线程基础

线程基础一、线程概念的引入背景1.1进程之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这...

2019-09-22 17:40:00 95

转载 Python程序中的进程操作-进程池(multiprocess.Pool)

Python程序中的进程操作-进程池(multiprocess.Pool)一、进程池为什么要有进程池?进程池的概念。在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁进程也需要消耗时间。第二即便开启了成千上万的进程,操作系统也不能让他们同时执行,这...

2019-09-22 17:39:00 351

转载 Python程序中的进程操作-进程间数据共享(multiprocess.Manager)

Python程序中的进程操作-进程间数据共享(multiprocess.Manager)一、进程之间的数据共享展望未来,基于消息传递的并发编程是大势所趋即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布式系统中。但进程间应该尽量避免通信,即便需要通信,也应该选择进程安全的工具来避免加...

2019-09-22 17:30:00 133

转载 Python程序中的进程操作-进程间通信

Python程序中的进程操作-进程间通信一、进程间通信IPC(Inter-Process Communication)二、队列2.1概念介绍——multiprocess.Queue创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。Queue([maxsize])创建共享的进程队列。参数:maxsize是队列中允许的最大项数,如果省略...

2019-09-22 17:28:00 126

转载 Python程序中的进程操作-进程同步(multiprocess.Lock)

Python程序中的进程操作-进程同步(multiprocess.Lock)一、多进程抢占输出资源import osimport timeimport randomfrom multiprocessing import Processdef work(n): print('%s: %s is running' %(n,os.getpid())) time.s...

2019-09-22 17:27:00 217

转载 Python程序中的进程操作-开启多进程

Python程序中的进程操作-开启多进程之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现并发效果,也就是说,当我们的程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快。以我...

2019-09-22 17:26:00 225

转载 进程的创建和结束

进程的创建和结束一、进程的创建但凡是硬件,都需要有操作系统去管理,只要有操作系统,就有进程的概念,就需要创建进程的方式,一些操作系统只为一个应用程序设计,比如微波炉中的控制器,一旦启动的微波炉,所有进程都已经存在。而对于通用系统(跑很多应用程序),需要有系统运行过程中创建或撤销进程的能力,主要分未4种形式创建心的进程:系统初始化(查看进程Linux中用ps命令,Windows中...

2019-09-22 17:24:00 167

转载 同步异步阻塞非阻塞

同步异步阻塞非阻塞一、状态介绍在了解其他概念之前,外面首先要了解进程的几个状态。在程序运行的过程中,由于被操作系统的调度算法控制,程序会进入几个状态:就绪,运行和阻塞。就绪(Ready)状态:当进程已分配到除CPU以外的所有必要资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。运行/执行(Running)状态当进程以获得处理机,其程序正在处理机上执行,此时的进程状...

2019-09-22 17:22:00 81

转载 进程的并行和并发

进程的并行和并发一、进程的并行和并发并行:并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑;(资源够用,比如三个线程,四核的CPU)并发:并发是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核CPU资源)同时只能过一个人,A走一段后,让给B,B用完继续给A,交替使用,目的是提高效率。二、并行和并发的区别并行:是从微观上,也就是在一个精确的时间片刻,有不同的程序在...

2019-09-22 17:21:00 386

转载 进程的调度

进程调度要想多个进程交替运行,操作系统必须对这些进程进行调度,这个调度也不是随即进行的,而是需要遵循一定的法则,由此就有了进程的调度算法。一、先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可以用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。由此可知,本算法适合于CPU繁忙型作业,而不利于I/O繁忙型的作...

2019-09-22 17:20:00 139

转载 进程基础

进程基础一、操作系统背景知识进程就是正在执行的一个过程,进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须事先了解操作系统。PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独...

2019-09-22 17:19:00 69

转载 操作系统的发展史

目录 操作系统的发展史 一、手动操作--穿孔卡片 二、批处理--磁带存储 2.1联机批处理系统 2.2脱机批处理系统 三、多道程序系统 3.1多道程序设计技术 3.2多道批处理系统 ...

2019-09-22 17:18:00 283

转载 Python笔记汇总

一、Markdown基本语法001 Markdown基本语法二、计算机基础002 计算机基础之编程003 计算机组成原理004 计算机操作系统005 编程语言分类006 网络的瓶颈效应三、Python基础007 变量008 常量009 Python变量内存管理010 变量的三个特征011 注释012 数据类型基础013 数字类型014 字符串类型015 ...

2019-09-22 17:16:00 163

转载 名称空间和作用域

名称空间和作用域前面我们说到函数内部的函数只能在函数内部调用,不能在函数外部调用,通过接下来的学习将会知道为什么会出现这种情况。一、名称空间名称空间(name spaces):在内存管理那一章时,我们曾说到变量的创建其实就是内存中开辟了一个新的空间。但是我们一直在没有说变量名的存储,其实在内存中存储变量名与变量间的绑定关系的空间,而这个空间称为名称空间。1.1内置名称空间内置名...

2019-09-22 17:15:00 108

转载 函数的嵌套

函数嵌套一、函数的嵌套定义函数内部定义的函数,无法在函数外部使用内部定义的函数def f1(): def f2(): print('from f2') f2()f2() # NameError: name 'f2' is not defineddef f1(): def f2(): print('from f2')...

2019-09-22 17:14:00 573

转载 可变长参数

可变长参数可变长参数:方式有两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,依次来分别接收溢出的**位置实参(*)与关键字实参(**)**一、可变长参数之*形参中的*会将溢出的位置实参全部接收,然后存储为元组的形式,再然后把元组赋值给*后的参数。需要注意的是:*后的参数名约定俗成为args。def sum_self(*args): res = 0...

2019-09-22 17:13:00 287

转载 函数的对象

函数对象函数是第一类对象,即函数可以被当做数据处理。def func(): print('from func')print(func)<function func at 0x10af72f28>一、函数对象的四大功能1.引用x = 'hello nick'y = xf = funcprint(f)<function func at 0...

2019-09-22 17:13:00 155

转载 函数的调用

目录 函数的调用 一、什么是函数调用 二、为何用调用函数 三、函数调用的三种形式 函数的调用一、什么是函数调用第一次讲函数其实就讲到了函数的调用,但是你不得不再次更新你对函数调用的印象。函数名(…)即调用函数,会执行函数体代码,直到碰到...

2019-09-22 17:07:00 176

转载 函数的参数

目录 函数的参数 一、形参和实参 1.1形参 1.2实参 二、位置参数 2.1位置形参 2.2位置实参 三、关键字实参 四、默认形参 五、总结 ...

2019-09-22 17:07:00 145

空空如也

空空如也

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

TA关注的人

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