1.缘起:假设我们要开发一个多人跳棋游戏。在跳棋游戏中,当一个人走一步棋之后,控制权就轮到下一家,如此轮询,一圈之后控制权又回到自己,然后再继续轮圈下去。我们可以使用数组或列表等数据结构来解决这种转圈圈的问题,但是始终都不够直观。我设计了Circle来对“圈”这种数据结构进行抽象,我们在类似跳棋这样的游戏中可以非常方便地直接使用它。Circle的形象示意图如下:2.适用场合:需要类似“圈”这样的数据结构支持的场合。3.设计思想与实现Circle也是一个非常
系统 2019-08-29 22:15:04 2197
前面我们讲了如何建立用例模型,那么建立用例模型应当注意什么呢?建立用例模型应当注意的问题给大家几个建立用例模型中常出现的问题和应对遵循的原则:一.如何发现用例经过以上的讲解,相信大家对建立用例模型有了一个整体的概念,然后开始着手练习绘制用例模型。这时候,一个非常严峻的问题出现了:如何发现用例。大师曾经给出了答案,大致意思就是:首先选择系统边界,然后确定主要参与者,定义满足用户目标的用例,为其命名。然而,我在实践中证明,这套方法过于理论,并不实用。也许,我们
系统 2019-08-29 21:59:00 2197
题目https://leetcode-cn.com/problems/power-of-two/comments/给定一个整数,编写一个函数来判断它是否是2的幂次方。示例1:输入:1输出:true解释:20=1示例2:输入:16输出:true解释:24=16示例3:输入:218输出:false思路代码classSolution:defisPowerOfTwo(self,n):""":typen:int:rtype:bool"""returnn>0andno
系统 2019-09-27 17:56:23 2196
在前面(【实战演练】数据库基本知识与原理系列https://blog.51cto.com/14423403/2418820)的文章,已经分享过数据库的原理,设计与开发的范式,以及根据我们django项目的需求,进行了数据库的设计。另外也介绍过数据库操作的基本SQL命令。以前不使用web框架来进行开发,那么就需要在一个php或者py文件(页面文件里面),从展示层(html、css、js)到逻辑层(php、python)到数据层(SQL)的东西都要写。直接用p
系统 2019-09-27 17:55:27 2196
最近的django开发中用到了有序字典,所以研究了一下,以下。示例:有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。普通字典:由上面的结果可以看出对普通字典进行遍历,输出结果是无序的。下面是有序字典(需要导入collections包):对比两种输出结果,不难发现,有序字典可以按字典中元素的插入顺序来输出。上面两个例子之所以字典中插入元素,而不是一开始就将字典中的元素定义好,是因为有序字典的作用只是记住元素插入顺序
系统 2019-09-27 17:55:00 2196
本实例有文件传输相关功能,包括:文件校验、进度条打印、断点续传客户端示例:importsocketimportjsonimportosimporthashlibCODE={'1001':'重新上传文件'}deffile_md5(file_path):obj=open(file_path,'rb')m=hashlib.md5()forlineinobj:m.update(line)obj.close()returnm.hexdigest()defjdt(si
系统 2019-09-27 17:54:16 2196
python异步IO编程(一)基础概念协程:pythongenerator与coroutine异步IO(asyncIO):一种由多种语言实现的与语言无关的范例(或模型)。asyncio:Python3.4版本引入的标准库,直接内置了对异步IO的支持。异步IO线程,多线程多线程善于处理I/O密集型任务。多进程擅长处理计算密集型(CPU-bound)任务:强密集循环和数学计算都属于此类。并发是并行的一种特殊类型(或者说子类),多线程是并发的表现形式,多进程是并
系统 2019-09-27 17:54:15 2196
前言Python中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。本文将会频繁地使用该模块的getsizeof()方法,因此,我先简要介绍一下:该方法用于获取一个对象的字节大小(bytes)它只计算直接占用的内存,而不计算对象内所引用对象的内存这里有个直观的例子:importsysa=[1,2]b=[a,a]#即[[1,2],[1,2]]#a、b都只有两个元素,所以直接占用的大小相等sys.get
系统 2019-09-27 17:51:00 2196
注释PIL是python的一个图像处理库,功能非常强大,可以实现图片的格式转换、旋转、裁剪、改变尺寸、像素处理、图片合并等等操作。PIL已经更名为pillow所以在终端输入pip3installpil会报错,而应该输入pip3installpillow进行安装。源码fromPILimportImagedefImage_PreProcessing():#待处理图片存储路径im=Image.open('UnprocessImage.jpeg')#Resize图
系统 2019-09-27 17:50:56 2196
PIL提供了通用的图像处理功能,以及大量的基本图像操作,如图像缩放、裁剪、旋转、颜色转换等。Matplotlib提供了强大的绘图功能,其下的pylab/pyplot接口包含很多方便用户创建图像的函数。为了观察和进一步处理图像数据,首先需要加载图像文件,并且为了查看图像数据,我们需要将其绘制出来。fromPILimportImageimportmatplotlib.pyplotaspltimportnumpyasnp#加载图像img=Image.open("
系统 2019-09-27 17:50:41 2196
Python打包分发工具setuptools:曾经Python的分发工具是distutils,但它无法定义包之间的依赖关系。setuptools则是它的增强版,能帮助我们更好的创建和分发Python包,尤其是具有复杂依赖关系的包。其通过添加一个基本的依赖系统以及许多相关功能,弥补了该缺陷。他还提供了自动包查询程序,用来自动获取包之间的依赖关系,并完成这些包的安装,大大降低了安装各种包的难度,使之更加方便,将程序打包以后可以可以安装到自己的虚拟环境中,也可以
系统 2019-09-27 17:50:39 2196
1.读取文件;2.获得想要的数据内容:日期、最低温、最高温3.绘制图形。x轴:日期;y轴:温度变化。defread_weather_file():"""读取文件,提取内容"""files=open("./weather/weather.json","r",encoding="utf-8")weather_content=files.read()#print("天气信息:",weather_content)#print(type(weather_conten
系统 2019-09-27 17:50:02 2196
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下实例:tup1=('physics','chemistry',1997,2000)tup2=(1,2,3,4,5)tup3="a","b","c","d"创建空元组tup1=()元组中只包含一个元素时,需要在元素后面添加逗号tup1=(50,)元组与字符串类似,下标索引从0开始,可以进行截取,组合等。
系统 2019-09-27 17:49:55 2196
本文实例讲述了Python基础学习之基本数据结构。分享给大家供大家参考,具体如下:前言相比于PHP,Python同样也是脚本解析语言,所以在使用Python的时候,变量和数据结构相对于编译语言来说都会简单许多,但是Python相比于PHP来说,变量类型的定义会比较严格:string->int的转换没有PHP那么方便。但这也让程序稳定性有所提升,例如和客户端交互的时候,数据库取出来的数字int和缓存取出来的数字(默认是string)需要手动进行转换(否则会有
系统 2019-09-27 17:48:52 2196
本文实例讲述了Python使用itchat模块实现群聊转发,自动回复功能。分享给大家供大家参考,具体如下:1.itchat自动把好友发来的消息,回复给他仅能实现自动回复原文给好友发来的文本消息、图片表情消息。#!/usr/bin/python#coding=utf-8importitchatfromitchat.contentimport*@itchat.msg_register([PICTURE,TEXT])defsimple_reply(msg):if
系统 2019-09-27 17:48:05 2196