自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python日志记录装饰器实现

由来需求:为一个加法函数增加记录实参的功能。def add(x, y): print('add called. x={}, y={}'.format(x, y)) # 增加的记录功能return x + yadd(4, 5)上面的代码满足了需求,但有缺点:记录信息的功能,可以是一个单独的功能。显然和add函数耦合太紧密。加法函数属于业务功能,输出信息属于非功能代码,不该放在add函数中日志记录装饰器实现import timeimport datetimedef logger(wra

2021-11-04 17:13:31 467

原创 Python高阶函数柯里化

柯里化指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。z = f(x, y) 转换成 z = f(x)(y)的形式。def add(x, y): return x + y原来函数调用为add(4, 5) ,柯里化目标是add(4)(5) 。如何实现?每一次括号说明是函数调用,说明add(4)(5) 是2次函数调用。add(4)(5)等价于t = add(4)t(5)也就是说add(4)应该返回函数。def add(x)

2021-11-03 15:37:27 145

原创 Python选择排序

选择排序每一趟两两比较大小,找出极值(极大值或极小值)并放置到有序区的位置。核心算法结果可为升序或降序排列,默认升序排列。以降序为例。扩大有序区,减小无序区。图中红色部分就是增大的有序区,反之就是减小的无序区。相邻元素依次两两比较,获得每一次比较后的最大值,并记住此值的索引。每一趟都从无序区中选择出最大值,然后交换到当前无序区最左端。算法基本实现nums = [1, 9, 8, 5, 6, 7, 4, 3, 2]length = len(nums)for i in range(len

2021-11-02 16:31:03 110

原创 Python冒泡排序

冒泡排序Bubble Sort交换排序相邻元素两两比较大小,有必要则交换。元素越小或越大,就会在数列中慢慢的交换并“浮”向顶端,如同水泡咕嘟咕嘟往上冒。核心算法排序算法,一般都实现为就地排序,输出为升序扩大有序区,减小无序区。图中红色部分就是增大的有序区,反之就是减小的无序区每一趟比较中,将无序区中所有元素依次两两比较,升序排序将大数调整到两数中的右侧每一趟比较完成,都会把这一趟的最大数推倒当前无序区的最右侧基本实现nums = [1, 5, 6, 8, 3, 4]length = l

2021-11-01 13:40:03 78

原创 Python生成器应用实例

生成器函数*包含yield语句的生成器函数调用后,生成生成器对象的时候,生成器函数的函数体不会立即执行*next(generator) 会从函数的当前位置向后执行到之后碰到的第一个yield语句,会弹出值,并暂停函数执行*再次调用next函数,和上一条一样的处理过程*继续调用next函数,生成器函数如果结束执行了(显式或隐式调用了return语句),会抛出*StopIteration异常应用1、无限循环def counter(): i = 0 while True: i += 1

2021-10-29 17:04:28 292

原创 Python之函数理解

函数:简单的来说,就是一个封装功能的代码块。函数的作用:1.结构化编程对代码的最基本的封装,一般按照功能组织一段代码2.封装的目的为了复用,减少冗余代码3.代码更加简洁美观、可读易懂函数定义:#def 函数名(参数列表):#函数体(代码块)#[return 返回值]# def 关键字, define定义,定义时def add(x, y): #add 标识符, 函数名,指向一个函数对象。 #(参数列表),参数列表种可以有n个参数(可以是0个),这些参数叫形式参数,简称形参。形参也是标

2021-10-27 15:41:23 117

原创 python生成产品编号小实例

Python生成26个小写字母的方式1.利用stirng模块来生成import stringx = string.ascii_lowercase2.利用ASCII码来生成x = "".join(chr(i) for i in range(0x61, 0x61+26)) ##这里利用了生成器来生成3.手动输入x = 'qwertyuiopasdfghjklzxcvbnm'实例要求:随机生成100个产品ID, ID格式如下:1.顺序的数字6位,分隔符点号,10个随机小写英文字符2.

2021-10-25 15:40:08 875

空空如也

空空如也

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

TA关注的人

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