自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Python热爱者的博客

人生苦短,我用Python

  • 博客(2913)
  • 收藏
  • 关注

转载 100道Python面试题总结

面试题第1题:1行代码实现1到100的和?第2题:如何使用Python输出一个[斐波那契数列]Fibonacci第3题:列出几个python标准库第4题:下面Python代码的运行结果是?第5题:python实现列表去重的方法?第6题:在Python中读取大文件第7题:如何避免转义,给字符串加哪个字母表示原始字符串?第8题:python中断言方法举例?第9题:列出python中可变数据类型和不可变数据类型,并简述原理第10题:你如何管理不同版本的代码?第11题:python中生成随机整数、随机小数、0~1之

2021-04-12 16:53:36 7179 1

原创 Python在不同对象中使用 in 操作符的查找效率

通过上面的测试,我们可以看到,总体来说,list、tuple它们使用 in 操作符的查找效率相差不多,set、dict它们使用 in 操作符的查找效率相差不多,但随着查找数据量的增大,list、tuple的处理效率变得越来越慢,而set、dict的处理效率,将远远优于list及tuple。在Python中 in 操作符可以用于判断某个元素是否存在于当前对象中,而对于不同的Python对象,使用 in 操作符的处理效率是不一样的。

2024-07-23 15:53:21 133

原创 Python实现数值交换的几种方式

我们也可以借助列表,右边放一个由 b 和 a 组成的列表来实现,但注意右边不能放一个集合中,因为集合是无序的,会导致最终交换结果不对。异或运算的特点:0异或任一个数a,其结果为 a;任一数a异或自己,也就是 a异或a,其结果为 0。同时异或运算满足交换律。

2024-07-22 15:57:46 221

原创 python库fire使用教程

目前python命令行解析库用过的有:argparse(python自带)、click(Flask作者写的)但二者相比fire这个库,用起来都不够 “简单”,fire一行代码能把函数导出到命令行窗口。argparse用法示例# 初始化解析器# 定义参数parser.add_argument("-f", "--file", help="统计指定文件类型")# 解析click用法示例@click.option("-f", "--file", help="统计制定文件类型")

2024-07-20 14:56:04 255

原创 Python中Nan||None||NaT||Null的区别

None是一个python特殊的数据类型;None不同于空列表和空字符串、空列表[ ]、空Series、空Dataframe,而是一个特殊的值,表示什么也没有,是一种单独的格式。: 在Python中没有这个NULL,NULL主要是在C语言中,在Python中对应的就是None;: NaN是numpy\pandas下的,不是Python原生的,Not a Number的简称。对整体的series或Dataframe判断是否未空,用isnull()对单独的某个值判断,可以用 np.isnan()

2024-07-19 14:29:30 120

原创 Python实现阶乘的几种写法

阶乘–>>数学用n!= n*(n-1)(n-2)(n-3)321,0的阶乘也是1,本人无法演绎,只能简单的从1开始。

2024-07-18 16:06:44 176

原创 Python字符串匹配的6种方法

PS:Python字符串匹配及正则表达式说明。

2024-07-17 15:15:16 222

原创 Python复制文件的9个方法

Python 中有许多“开盖即食”的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在这篇文章中,你将会看到一些用 Python 实现文件复制的特殊方法。下面我们开始学习这九种不同的方法来实现 Python 复制文件操作。在开始之前,你必须明白为什么了解最适合你的 Python 复制文件方法是如此重要。这是因为文件 I/O 操作属于性能密集型而且经常会达到瓶颈。这就是为什么你应该根据你的应用程序的设计选择最好的方法。

2024-07-16 14:56:53 822

原创 python输出一个列表的4种方法!(print/list/dict/zip)

题目:输出《红楼梦》中的金陵十二钗前5位共有四种方法,分别是print直接输出、通过List列表输出、通过字典输出和通过zip方式输出注,列表的序列图标是符号大全http://www.fhdq.net/index.html复制的。

2024-07-15 16:07:06 171

原创 Python实现字符串反转的9种方法

字符串是可切片,切片字符串会以给定的增量从字符串中的一个点(向后或向前)向另一个点提供一个新字符串。python中,字符换是不可变,更改字符串不会修改字符串,而是创建一个新的字符串。样例:如 a=‘123456789’ 反转成 a=‘987654321’

2024-07-13 15:48:51 166

原创 Python中常用的10个技巧

判断字符串中包含的元素是否相同,无论字符串中元素顺序如何,只要包含相同的元素和数量,就认为其是相同的。利用字符串翻转操作可以查看字符串是否回文。去重操作可以借助 set 来进行。

2024-07-12 19:20:12 205

原创 Python中创建包和增添包的路径(sys.path.append())

python中创建自己的包(package),其实就只需要里创建一个文件夹就可以了。文件夹里不是必须要有是__init__.py这个文件的,不过如果你的文件夹里存在这个__init__.py文件,那么当你在import这个包时python会立刻执行__init__.py里的内容并且只会执行__init__.py。

2024-07-11 15:10:58 701

原创 Python中字符串与Unicode

在Python读取文件中,最让人头疼的就是对文本文件的读取,因为对文本文件读取涉及到编码。如果一个采用GBK编码的文件,使用UTF-8进行解码,那么得到的字符就会产生乱码,因此作为程序员,我们在开发中理解正在处理的是那种字符串数据非常重要。

2024-07-10 15:36:58 923

原创 PyCharm编辑器中几个使用技巧

在实际的代码编写中,我们需要定义属于自己的文件头,比如脚本的创建时间、作者、编码等。在PyCharm中,我们可以一键定义,并与之后的脚本都会遵循该文件头的模式。File --> Preferences(Windows系统为:Settings) --> Editor --> File and Code Template --> Python Script,这样我们就可以设置Python脚本的文件头了。

2024-07-08 16:52:22 213

原创 Python自定义模块的使用和注意事项

除了使用系统提供的内置模块以外,我们还能自己写一个模块供自己的程序使用。一个.py文件就是一个模块,所以,自定义模块很简单,基本上相当于创建一个.py文件。但是,需要注意的是,如果一个.py文件要作为一个模块被别的代码使用,这个.py文件的名字一定要遵守标识符的命名规则。

2024-07-06 15:57:51 236

原创 Python闭包和保存自由变量

抽象代数里,一集元素称为在某个运算(操作)之下封闭,如果将该运算应用于这一集合中的元素,产出的仍然是该集合中的元素。注意我们文章中所称的闭包为Python中的闭包,而非抽象代数中的闭包。Python中的闭包是一种特殊的被外层函数包围的内层函数,它能够在外层函数执行完毕后仍然能获取在外层函数范围中、但未绑定到内层函数作用域的自由变量(free variable))。因为对于实例而言,测试话费的大部分时间都在对实例变量的访问上,而闭包要更快一些,因为不用涉及额外的self变量。工作起来很像实例的方法。

2024-07-05 15:48:52 582

原创 Python多进程中并行编程与进程池

Python的并行编程可以采用multiprocessing或mpi4py模块来完成。multiprocessing是Python标准库中的模块,实现了共享内存机制,也就是说,可以让运行在不同处理器核心的进程能读取共享内存。在基于共享内存通信的多进程编程中,常常通过加锁或类似机制来实现互斥。mpi4py库实现了消息传递的编程范式(设计模式)。简单来说,就是进程之间不靠任何共享信息来进行通信(也叫做shared nothing),所有的交流都通过传递信息代替。

2024-07-04 15:37:41 698

原创 Python中key参数的含义及用法

我们在使用 sorted() 或 map() 函数的时候,都会看到里面有一个 key 参数其实这个 key 参数也存在于其他内置函数中(例如 min()、max() 等),那么我们今天就来了解一下 key 参数的含义以及用途吧!

2024-07-02 16:05:27 647

原创 Python调用shell cmd的几种方式

​ 如果返回是str,直接通过read拿结果使用,如果是多行,选择readlines转list获取每行内容。​ 如果返回是str,直接拿结果使用,如果是多行,选择用splitline转list获取。

2024-06-28 19:07:08 187

原创 python中的Map和Filter

大多数时候,我们使用匿名函数(lambdas)来配合map。map不仅用于⼀列表的输⼊, 我们甚至可以用于列表的函数!大多数时候,我们要把列表中所有元素⼀个个地传递给⼀个函数,并收集输出。这个filter类似于⼀个for循环,但它是⼀个内置函数,并且更快。map会将⼀个函数映射到⼀个输入列表的所有元素上。Map可以让我们用⼀种简单而漂亮得多的方式来实现。

2024-06-27 14:13:17 168

原创 Python中几种lambda排序方法

以元素的第二个元素先升序排列,再以第一个元素升序排列。以元素的第二个元素降序排列,再以第一个元素降序排列。以元素的第二个元素升序排列,再以第一个元素降序排列。若不想更改原有的列表,只需使用sorted即可。以元素的第二个元素升序排列。

2024-06-26 18:55:46 295

原创 Python创建字典与fromkeys的坑

Django, Flask这些Web框架在做前后端分离时, 就是用字典传数据的, 因为它和列表list 配合起来, 能够很好的与json格式的数据相互转化. 用Flask + Echarts做数据可视化大屏, 传的变量都是字典和列表.比如我执行一个sql语句, 返回一个巨大的元组或列表, 而我又暂时不确定它的值是什么, 就可以这样批量创建, 值先为None, 或者随便赋一个值。wc***, fromkeys你不讲码德, 我只是修改了键为1的值, 怎么全都修改了!Python提供了许多快速创建字典的方式,

2024-06-25 16:10:11 188

原创 Python 判断质数的另一种方法

仔细想一想,其实这两个方法是一样的,第一块代码的range范围是包含[2,3,5,7]的,甚至可以再精细一点,比如当n=8的时候,第一块代码的范围区间是[2,3],这样就避免了后面5和7的无谓的计算。质数就是大于等于2且只能被它本身及1整除的数,百度上关于质数的性质和相关的公式还有很多,不过有点高深难懂,尤其是对我这个数学不好的人来说。有一组数是很神奇的:[2,3,5,7]。所以,只要被求的数不能被这组数中的每一个数整除,此数就为质数。比如8=2×2×2, 6=2×3, 14=2×7…

2024-06-21 15:16:39 197

原创 Python教程:异常捕捉与代码重构

如果你未对异常进行处理,程序停止,并显示一个traceback,其中包含有关异常的报告。当我们认为可能发生错误时,可编写一个try-except代码块来处理可能引发的异常,让你的python尝试运行一些代码,并告诉它这些代码指定的异常,改怎么办?比如说,要求用户输入的程序中,如果程序能够有效处理无效输入,而不至于崩溃。有时候我们有这样的需求:代码能够正常的运行,那可做进一步的修改——将代码划分为一系列完成具体工作的函数。这样的过程被称为重构。为此,我们首先将获取存储的用户名的代码移植到另一个函数中。

2024-06-13 15:47:37 268

原创 Python定义可变参数与list切片

print argsPython解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args看成一个 tuple 就好了。

2024-06-11 16:02:43 132

原创 Python实现定时任务的多种方式

进入Crontab文件编辑页面,设置时间间隔,使用一些shell命令来运行bash脚本或者是Python脚本,保存后Linux会自动按照设定的时间来定时运行程序。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。最简单的方式,在循环里放入要执行的任务,然后sleep一段时间再执行。缺点是,不容易控制,而且sleep是个阻塞函数。可以将所需要的Python程序打包成exe文件,然后在windows下设置定时执行。例如:两种方式组合用,5秒钟后执行,并且之后间隔5秒执行一次。

2024-06-07 16:55:20 321

原创 Python中堆、栈、队列之间的区别

2、在计算机科学中,队列是一个集合,其中集合中的实体按顺序保存,集合上的主要(或唯一)操作是向后端位置添加实体,称为入队,前端位置并删除实体,称为出队。3、队列提供计算机科学,运输和运营研究中的服务,其中存储和保存诸如数据,对象,人或事件的各种实体以便稍后处理。1、在 Python 中,和栈一样,同样可以用列表作为队列的底层实现,只需要确定列表的哪一端作为队列的头,也即删除操作端(先进先出),哪一端作为队列的尾,也即插入操作端(后进后出)。同时,把队列抽象为类,队列的先进先出操作实现为类的方法。

2024-06-05 15:59:55 670

原创 Python 两个内置函数: locals() 和 globals()

1、locals() 和 globals()两个函数主要提供,基于字典的访问局部和全局变量的方式。2、Python 中的名字空间概念:Python 使用叫做名字空间的东西来记录变量的轨迹。名字空间只是一个字典,它的键字就是变量名,字典的值就是那些变量的值。3、实际上,名字空间可以像 Python 的字典一样进行访问。4、每个函数都有着自已的名字空间,叫做局部名字空间,它记录了函数的变量,包括函数的参数和局部定义的变量。

2024-05-30 16:15:02 394 1

原创 python内置函数中all和any的用法

若全部为False,则返回 False;如果iterable的所有元素不为0、‘’、False或者iterable为空;all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE:如果是返回 True,否则返回 False。如果都为空、0、false,则返回false;如果不都为空、0、false,则返回true。【注意】参数为空元组、空列表、空字符串【可迭代对象】时 all() 返回值为True。其中,元素除了是 0、空、None、False以外的都算 True。

2024-05-29 15:33:56 166

原创 Python字典的高级用法

需要注意的是,一个 OrderedDict 的大小是一个普通字典的两倍,因为它内部维 护着另外一个链表。如果我们要删除有序字典中的 key-value, 可以使用 popitem 方法, popitem(last=True) 按照先进后出的顺序删除 dict中 的 key-value,popitem(last=False) 按照先进先出的规则删除 dict 中的 key-value。来源于微信交流群里一个朋友工作中的问题,列表中有很多字典,需要统计字典中相同的键对应的值的和。

2024-05-28 15:47:58 880

原创 python装饰器的集中使用姿势

在Python中,装饰器是一种十分强大并且好用的语法,一些重复的代码使用装饰器语法的话能够使代码更容易理解及阅读。因此在这里简单总结了一下Python中装饰器的几种用法以及需要注意的事情。

2024-05-27 15:06:35 636

原创 Python中lazy property的两种方法

那么我们有没有办法把一个类中的函数真正变成对象的属性,同时只有在第一次调用时进行一次计算,而之后每次调用不会重复计算呢?可以看到,area只在第一次调用时计算了一次,同时在调用以后area变成了对象的一个属性,同时值并不随半径的变化而变化。可以看到,area只在第一次调用时计算了一次,同时在调用以后area变成了对象的一个属性,同时值并不随半径的变化而变化。中找,没找到,就去类空间找,在类Circle中,有area()方法,于是就被。方法,说明是个描述器,第一次执行c.area的时候,因为顺序问题,先去。

2024-05-25 15:36:45 204

原创 Python 内置方法和属性应用:反射和单例

python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict、list、set、min、max、range、sorted等。enumerate如果你需要遍历可迭代的对象,有需要获取它的序号,可以用enumerate, 每一个next返回的是一个tuple# 0 1 4# 1 2 3# 2 3 2# 3 4 1zipzip从参数中的多个迭代器取元素组合成一个新的迭代器;# 给list加上序号print(i)# (0, 4)# (1, 3)

2024-05-24 15:27:57 235

原创 Python 中字典的键映射多个值

注意:defaultdict 会自动为将要访问的键创建映射实体(即使该键不存在)。如果想保持元素插入的顺序使用列表,如果想去掉重复元素使用集合(并不关心元素的顺序问题)因为每次调用都得创建一个新的初始值(例如程序中的空列表)。defaultdict 的一个特征是它会自动初始化每个 key 刚开始对应的值,所以只需要添加元素即可。字典中一个键对应一个单值的映射。如果想一个键映射多个值,就需要将多个值放到另外的容器中。实际上使用 collections 模块中的 defaultdict 来构造这样的字典。

2024-05-22 15:32:45 179

原创 Python中避免字典和元组的多重嵌套

例 3:需求变更,需记录每次成绩占总成绩的权重。该代码出现字典、元组的多层嵌套,应拆解为类。多层嵌套的代码,很难维护。例 2:扩充 SimpleGradebook类,按科目保存成绩。虽然代码量是原来的两倍,但更清晰,更易扩展,理解起来比原来容易。分析:定义一个 BySubjectGradebook类,字典。这么简单的信息,没必要写成类。① Gradebook()类,学生名是字典。② Student()类,科目是字典。③ Subject()类,成绩是列表。例 1:记录全班学生的成绩。将下面的字典重构为类。

2024-05-21 15:43:49 146

原创 Python类中__del__()、__call__()、__repr__()、__new__()、__hash__()方法

在python中,有内置的哈希函数hash(),返回一个对象(数字、字符串,不能直接用于list,set,dict)的哈希值。hash算法,是将一个不定长的输入,通过hash函数变换成一个定长的输出,即哈希值。3.自定义对象添加到集合中,一般认为两个对象的属性值相同就是同一个对象 --自定义计算规则。:可以让类的实例具有类似于函数的行为,进一步模糊了函数和对象之间的概念。注意:实例化对象 Object 类底层实现,其他类继承了Object的。返回值:必须返回一个对象实例 作用:实例化对象。

2024-05-20 16:12:36 311

原创 Python中yaml模块的使用教程

yaml是一个专门用来写配置文件的语言。

2024-05-18 15:32:47 714

原创 python中startswith()和endswith() 方法

如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。Python startswith() 方法用于检查字符串是否是以指定子字符串开头。解析:如果字符串string是以str结束,则返回True,否则返回False。作用:判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型。如果检测到字符串,则返回True,否则返回False。如果检测到字符串则返回True,否则返回False。常用环境:用于判断文件类型(比如图片,可执行文件)

2024-05-16 16:35:59 345

原创 Python中定义(创建)、调用函数及返回值

要调用一个函数,首先要定义它。在Python中使用关键字def来定义一个函数。函数通常由函数名、参数列表以及一系列语句组成的函数体构成的。def 函数名(参数列表) :函数体上面的函数是在Python中定义的最简单的函数,虽然没有实际作用,但是它符合Python定义函数的规则。def关键字函数名:myfun,函数名的命名需满足Python中标识符的命名规范。包含参数的括号(必须是英文括号):这个函数没有参数冒号(必须是英文冒号):这也是Python函数定义时必不可少的部分。

2024-05-15 16:53:15 521

原创 python用List的内建函数list.sort进行排序

对List进行排序,Python提供了两个方法方法1 用List的内建函数list sort进行排序list sort(func=None, key=None, reverse=False)Python实对List进行排序,Python提供了两个方法。

2024-05-14 16:41:48 382

空空如也

空空如也

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

TA关注的人

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