![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python进阶
文章平均质量分 88
Simple子夜
实迷途其未远、觉今是而昨非
展开
-
Python匿名函数,临时使用的函数,用完即回收
前言:使用def关键字的函数相当于一个创建一个容器空间,随时可以对其调用,lambda关键字创建的函数则是没有名字的,一次性使用即被释放。目录前言:匿名函数的定义使用方法搭配if..else使用配合内置函数使用对字典的值进行排序根据年龄返回信息匿名函数的定义语法格式:方式一 无参匿名函数:lambda :表达式(函数的返回值)方式二 有参匿名函数:lambda 参数1,参数2,...:表达式(函数的返回值)使用方法# 方式一:res = (lambda x,y: x + y)原创 2020-12-08 14:36:20 · 1781 阅读 · 0 评论 -
Python函数嵌套
前言:嵌套函数指定是在函数的内部再定义一个函数,但是需要注意的是,在函数内部定义的函数,无法被外部所访问,通俗来讲就是函数在哪里定义的就只能在同级别位置进行调用函数嵌套定义通过将函数定义在已存在的函数内容,称为:嵌套函数def func1(): print('this is func1') def func2(): # 此函数为嵌套函数 print('this is func2')调用嵌套函数能否通过在外部调用到func2函数def func1原创 2020-11-27 19:57:41 · 5191 阅读 · 0 评论 -
Python 简单介绍递归函数的应用 & 二分法
前言:函数可以嵌套定义以及嵌套调用,即可以在函数内部定义函数,也可以在函数内部调用另外一个函数,那么我们之前一直在调的都是其他函数,有没有想过调用本身的函数?那么这就要说到今天的内容,递归函数递归函数递归函数指的就是函数调用自身的过程,这样会有一个问题,在调用自身后,会产生一个循环,下一次运行到这个位置还是调用自身,例如def func(): print('my func 1') print('my func 2') func()func()这是一种错误的调用方式原创 2020-12-10 21:31:25 · 1445 阅读 · 0 评论 -
Python 闭包函数,get重要知识点
前言:函数篇的重要知识点,为什么要使用闭包,就是在只能向函数传递一个参数时,定义的内部函数需要使用外部函数的值时,那么闭包是最好的选择。闭包涉及到的知识点:函数的使用:https://blog.csdn.net/m0_46958731/article/details/110121539函数对象:https://blog.csdn.net/m0_46958731/article/details/110220132函数嵌套:https://blog.csdn.net/m0_46958731/arti原创 2020-11-30 11:40:10 · 320 阅读 · 0 评论 -
Python函数对象,一切皆对象概念,将函数作为变量值使用
Python中有着一切皆为对象的说法,那么作为对象,应该具备三种特性:id(内存地址)、类型(type)、值(对象所具备的数据)函数对象作为Python函数,它也是对象的一种,来查看一下它具备的特性def func(): print('this is test func') # 如果使用括号的话就表示调用这个函数了,不加括号我们可以将函数作为对象使用print(type(func))<class 'function'> # 函数的类型print(id(func))140原创 2020-11-27 09:35:13 · 1674 阅读 · 0 评论 -
Python 装饰器的用法,不改变函数源码,增加新的功能
Python装饰器的理解Python装饰器(Decorators)用于不改变原函数代码的基础上,对函数添加新的功能。装饰器可以作用在,平常购买商品时,点击购买会将购买商品的函数放入进去,如果是登录状态则可以执行这个函数,未登录的话,则跳转到登录界面,不执行购买函数。在理解Python装饰器前得先理解一下闭包的概念:博主写了一篇关于闭包的博客,可以参考一下:https://blog.csdn.net/m0_46958731/article/details/110336617Python装饰器原创 2020-11-30 12:26:29 · 2773 阅读 · 0 评论 -
Python 并发编程(协程)
一、引入本章节主要介绍,使用单线程实现并发,即只用一个主线程(很明显可利用CPU只有一个),为此我们需要先回顾下并发的本质:切换+保存状态ps:在介绍进程理论时,提及进程的三种执行状态,而线程才是执行单位,所以也可以将上图理解为线程的三种状态二、协程介绍单线程下并发称为:协程特点:单线程下的IO等待降到最低,也就是说协程时,遇到IO会切换执行另一个任务,因此将可以将单线程的能力发挥到最大缺点:不能实现并行单线程下的多个任务一旦遇到IO,整个线程都会阻塞,所有任务都停滞三、Ge原创 2021-01-28 14:44:41 · 1200 阅读 · 0 评论 -
Python 并发编程(进程)
前言:在学习并发编程前,可以了解进程与线程相同内容:进程与线程的关系,任务执行方式并发编程会运用到创建、管理进程与线程相关的内容。创建多个进程或线程,可以有效提高我们程序的运行效率,但其中也存在一些问题,那么现在来了解一下吧!多进程这里通过Python提供给我们的模块multiprocessing来向操作系统发送信号帮助我们创建一个子进程,为什么是子进程?因为它是基于我们已存在的进程所创建出来的,所以称为:子进程我们使用到的是multiprocessing模块内的一个Process类创建进程,原创 2021-01-28 14:43:20 · 1411 阅读 · 2 评论 -
Python 并发编程(线程)
多线程线程:执行单位,cpu执行的就是线程,一个流水线的运行过程(进程内代码的运行过程)进程:资源单位,会申请一块内存空间来存放程序,进程是线程包含线程的一个容器执行一个Python文件默认会开启一个进程,进程内默认包含一个线程(主线程),相当于执行每个操作都是由一个线程来执行的,而我们开启的子进程其中也包含一个线程,所以它占用的资源会远大于创建一个线程。多线程就是在一个进程内开启多个线程。线程 与 进程同一进程下的多个线程共享该进程的内存空间。开启子线程的开销远小于开启子进程多线程的原创 2021-01-28 14:42:37 · 1239 阅读 · 0 评论 -
Python GIL全局解释器锁
目录GIL全局解释器锁一、引入:二、GIL介绍三、GIL与Lock四、GIL与多线程GIL全局解释器锁一、引入:首先要明白,GIL并不是Python的一个特性,其实在我们通常所称呼的Python解释器,其实是CPython解释器,因为大部分Python程序都是基于该解释器执行的,当然还有JPython解释器(基于Java编写的),而这个GIL则是CPython解释器的特性,而不是Python的特性。GIL全称:Global Interpreter Lock,官方解释In CPython, t原创 2021-01-28 14:41:20 · 985 阅读 · 2 评论 -
Python socket网络编程
前言:平常我们会接触到两种框架,分别是:b/s架构与c/s架构。Socket属于CS架构,它也称为:套接字,应用程序通常使用套接字通过网络,实现与另一台计算机进行通讯。。原创 2021-01-21 16:52:06 · 9712 阅读 · 9 评论 -
Python 常用内置模块
前言在开发程序的过程中,无法避免模块的使用,Python具备丰富强大的内置模块及第三方模块,拿来即可使用,且拥有文档说明方便使用者更加了解,熟练的使用模块能够更快提升我们的开发效率,下面来介绍Python中的一些常用模块目录前言JSON格式转换模块序列化与反序列化json.dumps()json.loads()JSON格式内容转换实例json.dump()json.load()json补充说明JSON转换的页面Pickle格式转换模块pickle.dumps()pickle.loads()pickle原创 2021-01-18 14:41:06 · 1429 阅读 · 3 评论 -
Python re正则表达式
re 正则模块正则指的是一种规则(或是一种表达式):用于匹配字符串主要作用就是通过正则表达式来处理字符串,或者从中过滤出我们想要的内容。定义好规则以后,它会去字符串中查找符合规则的字符。正则表达式和语言无关,几乎所有编程语言都会用到。但re模块是Python独有的下面来介绍匹配规则的写法,规则书写借鉴至:博客园一位优秀博主下面来使用re模块配合上面的规则来匹配字符正则匹配规则字符匹配规则import reres=re.findall('el','hello 123_*&am原创 2021-01-15 18:21:28 · 1213 阅读 · 1 评论 -
Python 异常处理
Python异常处理在Python中存在着两种错误:语法错误、逻辑错误语法错误在写程序的必不能犯的。因为只要写出了语法错误,整个程序就无法运行。这Python的规定而逻辑错误,则是我们平常编写代码的过程中产生的,我们需要尽可能避免。其中有些逻辑错误我们可以避免,如下:inp = input('输入成绩:')if inp.isdigit(): inp = int(inp)else: print('请输入数字!')# 如果在inp输入完后就给它进行转换成int类型,那么必定会原创 2021-01-15 15:01:37 · 1112 阅读 · 6 评论 -
Python 单例模式:5种实现方式
目录单例模式模块实现单例类装饰器实现基于类绑定方法使用new方法实现元类实现单例模式单例模式单例模式(Singleton mode):一种常见的软件设计模式,该设计模式主要目的就是确保某一个类中只能有一个实例存在。如:产生很多实例,而它们做的事情只是执行发一个邮件的方法。这会特别浪费内存资源,因为频繁创建和销毁实例。优点:那么此时我们的单例模式就派上了用场,让它们使用我们定义好的一个实例。这样会节约了大量内存。单例一次只接受一次访问,如果还要访问,需要等待上一个访问者使用完。缺点:不适用于变原创 2021-01-07 20:00:39 · 2396 阅读 · 0 评论 -
带你了解Python面向对象 (1) 基础篇:类与对象、初始化对象属性
前言:我们编程可分为两种编程思想:面向过程:将程序进行流程化,即把程序的步骤整理清楚再一步步实现,但是拓展性差,程序的流程在写程序的时候已经决定好,后期更改程序会牵扯到有关联性的一些功能,理解:面向过程关注的是解决问题需要哪些步骤面向对象:将程序的变量以及功能整合到一起成为:对象,程序的流程是在对象生成后决定的,后期拓展程序只需要更改对象即可,理解:解决问题需要哪些对象但并不是说开发程序一定要用面向对象编程思想来进行开发,选取对我们更有优势的方式才是最好的!那么本篇就来介绍一下面向对象编程~原创 2020-12-31 11:14:54 · 1418 阅读 · 1 评论 -
Python 迭代器、生成器、三元表达式、生成式
目录迭代器迭代器的概念迭代器的作用迭代器的使用方法迭代器对象的特点迭代器对象优缺点迭代器总结生成器yield和return生成器的定义生成器的调用方式实例:使用生成器产生数生成器的解释三元表达式生成式列表生成式字典生成式集合生成式生成器表达式迭代器迭代器的概念迭代指的是一个重复过程,并非单纯的重复,可以说是在原来基础上做出的一些改动。迭代器指的就是迭代取值的过程例如:count = 1while count < 5: count += 1 # 每次都在原来值的基础上进原创 2020-12-08 21:20:03 · 655 阅读 · 1 评论 -
Python名称空间的概念 and 作用域应用
前言:在内存中开辟的一块空间用于存放创建的变量,回顾之前一直在忽略变量名的存储,但其实内存中还存在一块空间用于将变量名和内存地址进行绑定的空间,那么这个空间就叫做名称空间文章目录前言:名称空间内置命名空间:全局名称空间:局部名称空间(局部变量):名称空间名称空间分为三大类内置命名空间:存放内置的名字,该名称空间伴随着解释器启动就产生了,内置空间存放了如:print、len、input等内置方法生命周期:当解释器关闭时则销毁print('123')len('123')input('1原创 2020-11-29 19:45:55 · 1213 阅读 · 0 评论 -
Python进阶(1)函数的使用,规范代码,定义功能
前言:使用函数可以解决代码重复使用率,以及增加代码可读性。对部分代码划分进行统一管理。可以一个功能对应一个函数,当功能需要拓展时,可以很方便就能找到对应的函数进行添加内容。Python有许多内置函数,如print()。当然也可以自定义函数。文章目录前言:自定义函数函数传参传入不可变数据类型:传递可变数据类型:函数返回值自定义函数你可以自定义一个自己想实现功能的函数,定义函数的规则:1、def 关键字起始2、函数名后面更括号3、最后冒号结尾4、参数(前3个是函数定义必备,参数根据情况而原创 2020-11-27 09:22:50 · 1516 阅读 · 2 评论