编程技术 - 军军小站|张军博客
Python

Python程序设计模式

Python设计模式设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。所有的设计模式示例都是来源于菜鸟教程,每个设计模式的UML都可以在菜鸟教程中找到相应的示例github地址:Python设计模式以工厂模式为例:工厂模式在菜鸟教程中的UML图为工厂

系统 2019-09-27 17:55:33 1809

Python

详解Python传入参数的几种方法

Python传入参数的方法有:位置参数、默认参数、可变参数、关键字参数、和命名关键字参数、以及各种参数调用的组合写在前面Python唯一支持的参数传递方式是『共享传参』(callbysharing)多数面向对象语言都采用这一模式,包括Ruby、Smalltalk和Java(Java的引用类型是这样,基本类型按值传递)共享传参是指函数的各个形式参数获得实参中各个引用的副本;也就是说,函数内部的形参是实参的别名(alias)这种方案的结果是,函数可能会修改作为

系统 2019-09-27 17:55:23 1809

Python

python初学笔记:if语句

Python中的条件语句与我之前学过的C,C++很相像,在Python里用and代替了&&(与运算符),用or代替了||(或运算符),而其他比较运算符如>,<,=,>=,<=,==,!=的用法和意义与C一致。在使用Python的if语句时,要注意冒号和缩进。最简单的if语句为if条件测试:要执行的内容如:a=5ifa>3:print("aislargerthan3")ifelse语句与此类似,如a=5ifa>3:print("aislargerthan3"

系统 2019-09-27 17:55:15 1809

Python

python 日期排序的实例代码

问题1:如果日期中有千年以前的情况(没法用格式化函数),如('2010-11-23','1989-3-7','2010-1-5','978-12-1','2010-2-4')参照方法1问题2:如果日期中没有千年以前的情况,做法就很多了。参照方法2和方法3#-*-coding:utf-8-*-importtimefromoperatorimportitemgetterarr=('2010-11-23','1989-3-7','2010-1-5','978-1

系统 2019-09-27 17:54:50 1809

Python

python爬虫 爬取超清壁纸代码实例

简介壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物。然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁纸要么分辨率低,要么带有水印。壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物。然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁纸要么分辨率低,要么带有水印。演示图片

系统 2019-09-27 17:54:45 1809

Python

python pytest进阶之conftest.py详解

前言前面几篇文章基本上已经了解了pytest命令使用,收集用例,finxture使用及作用范围,今天简单介绍一下conftest.py文件的作用和实际项目中如是使用此文件!实例场景首先们思考这样一个问题:如果我们在编写测试用的时候,每一个测试文件里面的用例都需要先登录后才能完成后面的操作,那么们该如何实现呢?这就需要我们掌握conftest.py文件的使用了。实例代码创建如下一个目录ConftestFile|conftest.py|test_file_01

系统 2019-09-27 17:54:45 1809

Python

Python 学习 第15篇:日期和时间

datetime模块中包含五种基本类型:date、time、datetime、timedelta和tzinfo,tz是timezone的缩写,tzinfo用于表示时区信息。一,date类型date类型表示日期,是由year、month和day构成的对象1,初始化date对象使用date(year,month,day)函数来初始化date对象:fromdatetimeimportdatemydate=date(year,month,day)2,date对象函

系统 2019-09-27 17:54:44 1809

Python

[Python] 汉诺塔问题(递归)

汉诺塔的移动可以用递归函数非常简单地实现。题目:请编写move(n,a,b,c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法[思路]假设:A柱子只有两个盘,上面为n-1个小盘,下面为1个大盘;B:0盘;C:0盘移动步骤①:A柱的n-1个盘,借助C柱的缓冲,移动到B柱,move(n-1,a,c,b)移动步骤②:A柱的1个盘,借助B柱的缓冲,移动到C柱,move(1,a,b,c)移动步骤③:B

系统 2019-09-27 17:54:20 1809

Python

python的内存管理和垃圾回收机制详解

简单来说python的内存管理机制有三种1)引用计数2)垃圾回收3)内存池接下来我们来详细讲解这三种管理机制1,引用计数:引用计数是一种非常高效的内存管理手段,当一个pyhton对象被引用时其引用计数增加1,当其不再被引用时引用计数减1,当引用计数等于0的时候,对象就被删除了。2,垃圾回收(这是一个很重要知识点):①引用计数引用计数也是一种垃圾回收机制,而且是一种最直观,最简单的垃圾回收技术。在Python中每一个对象的核心就是一个结构体PyObject,

系统 2019-09-27 17:54:17 1809

Python

python基础之面向对象的三大特征(15)

self:1.只是一个参数。2.在对象使用方法的时候,当前对象会作为第一个参数的实参传入3.self相当于语言中的代词,表示当前对象本身(其他语言中也有使用this)4.self的作用连接整个对象的所有信息。桥梁的作用!5.self不是关键字,只是一个参数变量名而已,可以使用其他单词代替(禁止代替)6.方法的初步分类:方法中具有接受对象的参数这个方法,叫做非绑定类的方法方法中没有接受对象的参数这个方法,叫做绑定类的方法:即将deffunc(self)中的s

系统 2019-09-27 17:53:21 1809

Python

python之numpy模块的使用(1)

原文链接:https://www.numpy.org.cn/本节内容:数组的创建数组操作(获取数组属性,数组运算,数组复制,数组展开等等)获取数组特定元素1、创建数组(1)常用的创建一维数组的方式#可以将任意类型的序列(列表、元组、字典、集合、字符串)传递给np.array()a1=np.array([1,2,3,4])#传递列表a2=np.array((1,2,3,4))#传递元组a3=np.array([1,2,3,4],dtype=float)#在创

系统 2019-09-27 17:52:35 1809

Python

Spark学习实例(Python):窗口操作 Window

说到流处理,Spark为我们提供了窗口函数,允许在滑动数据窗口上应用转换,常用场景如每五分钟商场人流密度、每分钟流量等等,接下来我们通过画图来了解SparkStreaming的窗口函数如何工作的,处理过程图如下所示:上图中绿色的小框框是一批一批的数据流,虚线框和实线框分别是前一个窗口和后一个窗口,从图中可以看出后一个窗口在前一个窗口基础上移动了两个批次的数据流,而我们真正通过算子操作的数据其实就是窗口内所有的数据流。在代码实现前了解下窗口操作常用的函数有:

系统 2019-09-27 17:52:34 1809

Python

Python3.6内置函数(9)——callable()

英文文档callable(object)ReturnTrueiftheobjectargumentappearscallable,Falseifnot.Ifthisreturnstrue,itisstillpossiblethatacallfails,butifitisfalse,callingobjectwillneversucceed.Notethatclassesarecallable(callingaclassreturnsanewinstance

系统 2019-09-27 17:52:30 1809

Python

python--使用两个栈实现队列

问题:用两个栈来实现一个队列,完成队列的Push和Pop操作。分析:栈的特性是“先进后出”,队列为“先进先出”。思路:入队:直接把新元素压入stack1即可。出队:根据队列先进先出的性质,由于先进入队列的元素被压倒stack1的栈底,要想实现先入队列的先出队,需要将stack1中的元素逐个弹出并压入stack2,经过弹出和压入之后最先进入的元素就处于stack2的栈顶,有可以直接弹出。python实现代码:classSolution:def__init__

系统 2019-09-27 17:52:27 1809

Python

Python之装饰器

功能:为已存在的函数或对象添加额外的功能原则:不改变源代码为其添加功能不改变函数的调用方式方法:装饰器=高阶函数+嵌套函数(高阶函数:一个函数可以作为参数传递给另外一个函数,或者,一个函数的返回值是一个函数,即函数的入口地址)函数名作为参数传递给装饰器(@decorator_name)装饰函数返回函数名(函数地址)注意:默认情况下,装饰器会修改名字和文档说明,但是可以使用functools中的@wraps()解决。@wraps接受一个函数来进行装饰,并加入

系统 2019-09-27 17:51:46 1809