当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐。在Python中,我们可以借助一些标准模块来帮助我们自动完成测试过程,比如:unittest:一个通用的测试框架;doctest:一个更简单的模块,是为检查文档而设计的,但也非常适合用来编写单元测试。下面,笔者将会简单介绍这两个模块在测试中的应用。doctestdoctest模块会搜索那些看起来像是python交互式会话中的代
系统 2019-09-27 17:55:06 2271
Python面向对象编程——什么是面向对象的程序设计一、面向过程的程序设计1、概念核心是“过程”二字,“过程”指的是解决问题的步骤,即先干什么再干什么......基于面向过程设计程序就好比在设计一条流水线,是一种机械式的思维方式。若程序一开始是要着手解决一个大的问题,面向过程的基本设计思路就是把这个大的问题分解成很多个小问题或子过程,这些子过程在执行的过程中继续分解,直到小问题足够简单到可以在一小步骤范围内解决。2、优点复杂的问题流程化,进而简单化(一个复
系统 2019-09-27 17:53:59 2271
Python闭包的使用方法嵌套函数中的非局部变量在进入闭包之前,我们必须先了解一个嵌套函数和非局部变量。在函数中定义另一个函数称为嵌套函数。嵌套函数可以访问包围范围内的变量。在Python中,这些非局部变量只能在默认情况下读取,我们必须将它们显式地声明为非局部变量(使用nonlocal关键字)才能进行修改。以下是访问非局部变量的嵌套函数的示例。defprint_msg(msg):#Thisistheouterenclosingfunctiondefprin
系统 2019-09-27 17:53:47 2271
PythonsocketC/S结构的聊天室应用服务端:#!/usr/bin/envpython#coding:utf8importsocket,selectdefbroadcast_data(sock,message):forsocketinconn_list:ifsocket!=server_socketandsocket!=sock:try:socket.send(message)except:socket.close()conn_list.remov
系统 2019-09-27 17:53:37 2271
前言好久没有更技术文了,再不写怕是博客要废掉了,今天更一篇关于搭建服务端并与Android端通信的文章,为了节省代码量,服务端使用PythonFlask,Android端使用Okhttp,还是老样子,文章不讲原理只给具体实现,想要了解原理可至官网详细研究。服务端环境:服务端使用Python3.5+PyCharm新建Flask项目看图:然后create,初始化完成之后项目结构应该类似如下:其实这时候直接启动项目就可以在浏览器访问到:这就是使用现成框架的好处h
系统 2019-09-27 17:53:28 2271
我们还是以那个翻译程序为例子,上次给各位老铁讲了在windows下的应用程序打包,这一次给各位老铁讲一讲,在linux下为python文件可以自己执行,从而不需要pythonxxx.py。很简单,在python源文件最上面添上下面一句话!#!/usr/bin/python3/usr/bin/python3,是ubuntu下python3解释器所在的目录,具体可以用whichpython3查看然后在执行chmod+x./xxx.py,为python脚本增加可
系统 2019-09-27 17:53:18 2271
测试1deco运行,但myfunc并没有运行复制代码代码如下:defdeco(func):print'beforefunc'returnfuncdefmyfunc():print'myfunc()called'myfunc=deco(myfunc)测试2需要的deco中调用myfunc,这样才可以执行复制代码代码如下:defdeco(func):print'beforefunc'func()print'afterfunc'returnfuncdefmyfu
系统 2019-09-27 17:51:53 2271
Python画图示例(1)一维数据集绘图Python画图示例(2)二维数据集绘图Python画图示例(3)其他绘图样式,散点图,直方图等Python画图示例(4)3D绘图importnumpyasnpimportmatplotlib.pyplotaspltstike=np.linspace(50,150,24)ttm=np.linspace(0.5,2.5,24)stike,ttm=np.meshgrid(stike,ttm)print(stike[:2]
系统 2019-09-27 17:50:08 2271
3.插入排序(简单插入排序)3.1算法思想如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、长度增加1的有序数据。插入排序的基本思想是:每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。同样,这个算法不需要额外的存储空间,空间复杂
系统 2019-09-27 17:49:40 2271
原文链接:https://www.jb51.net/article/106744.htm起因漏洞产生的原因最常见的就是字符串拼接了,当然,sql注入并不只是拼接一种情况,还有像宽字节注入,特殊字符转义等等很多种,这里就说说最常见的字符串拼接,这也是初级程序员最容易犯的错误。首先咱们定义一个类来处理mysql的操作classDatabase:url='127.0.0.1'user='root'password='root'db='testdb'charset
系统 2019-09-27 17:48:55 2271