希尔排序思想:算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。一般的初次取序列的一半为增量,以后每次减半,直到增量为1。defshell_sort(list):n=len(list)gap=n//2new_list=[]whilegap>1:foriinrange(gap):iflist[i]>list[i
系统 2019-09-27 17:48:17 2309
本文针对Python的全局变量实现方法简述如下:先来看下面一段测试程序:count=0defFuc(count):printcountcount+=1foriinrange(0,10):Fuc(count)运行结果是:>>>0000000000很显然,这并不是我们想要的结果。针对这一问题的解决方法就是采用全局变量:globalaa=3defFuc():globalaprintaa=a+1if__name__=="__main__":globalaforii
系统 2019-09-27 17:48:00 2309
我用python写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中。之前我都是手动执行这些脚本,现在我希望如何这些脚本能自动定时执行。那么,windows10操作系统如何定时自动执行python脚本?我的设备是windows10操作系统,自带的“计划任务”可以满足我的需求,具体操作步骤,整理如下。步骤1:打开“计算机管理”界面点击电脑左下角的windows图标,或者键盘的windows按键。在弹
系统 2019-09-27 17:46:43 2309
Tqdm是一个易用性强、扩展性高的Python进度条库,可以在Python长循环中添加一个进度提示信息,我们只需要封装任意的迭代器tqdm(iterator)即可。安装学习交流群:243771258安装过程如下:自动控制进度更新学习交流群:243771258传入可迭代对象输出结果为:使用方法trangetrange(i)是tqdm(range(i))的简单写法。学习交流群:243771258输出结果为:学习交流群:243771258为进度条设置描述在for
系统 2019-09-27 17:46:11 2309
阅读更多基本原理就是利用selenium模拟操作实现登录,我的目的是要开通直播,获取直播码,最终实现定时直播录像节目。目前已经实现了获取直播码。其中难度较大是滑动验证,网上的例子已经失效,最终还是找到了方法成功了。演示地址:https://www.bilibili.com/video/av58116369/
系统 2019-09-27 17:45:44 2309
python判断三个数字中的最大值,具体代码如下所示:#判断三个数中最大值n1=int(input('pleaseenterthefirestnumber:'))n2=int(input('pleaseenterthesecondnumber:'))n3=int(input('pleaseenterthethirdnumber:'))max_num=0ifn1>n2:max_num=n1ifn1>n3:max_num=n1else:max_num=n3el
系统 2019-09-27 17:45:27 2309
Python多线程实例详解多线程通常是新开一个后台线程去处理比较耗时的操作,Python做后台线程处理也是很简单的,今天从官方文档中找到了一个Demo.实例代码:importthreading,zipfileclassAsyncZip(threading.Thread):def__init__(self,infile,outfile):threading.Thread.__init__(self)self.infile=infileself.outfile
系统 2019-09-27 17:38:27 2309
python提取照片坐标信息的代码如下所示:fromPILimportImagefromPIL.ExifTagsimportTAGSimportosoutput="Z://result.csv"out=open(output,'a')out.write('lat,lon\n')fpath="Z://iphonephoto"foriteminos.walk(fpath):ob=item[2]foriinob:name=fpath+'/'+str(i)ret=
系统 2019-09-27 17:57:04 2308
小白:大牛哥,刚才看到有一个函数不使用return返回结果,而是使用yield关键字返回结果,看不太明白,Python中yield关键字的用途是什么,它有什么作用呀?大牛:要想理解yield的作用,你必须了解什么是生成器(generators),了解生成器之前(generators)你需要先去了解什么是可迭代对象(iterables)。大牛:小白啊,今天你大牛哥我刚好有空,给你说道说道这个yield的作用。让你开开眼界,看看我大牛都是怎么写出牛逼代码的。小
系统 2019-09-27 17:56:45 2308
一、简介Shp格式是GIS中非常重要的数据格式,主要在Arcgis中使用,但在进行很多基于网页的空间数据可视化时,通常只接受GeoJSON格式的数据,众所周知JSON(JavaScriptObjectNonation)是利用键值对+嵌套来表示数据的一种格式,以其轻量、易解析的优点,被广泛使用与各种领域,而GeoJSON就是指在一套规定的语法规则下用JSON格式存储矢量数据,本文就将针对GeoJSON的语法规则,以及如何利用Python完成Shp格式到Geo
系统 2019-09-27 17:56:39 2308
写在前面如非特别说明,下文均基于Python3命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字、对象及其绑定的文章。1.命名空间1.1什么是命名空间Namespace命名空间,也称名字空间,是从名字到对象的映射。Python中,大部分的命名空间都是由字典来实现的,但是本文的不会涉及命名空间的实现。命名空间的一大作用是避免名字冲突:deffun1():i=1deffun2():i=2同一个模块中的两个函数中,两个同名名字i之间绝没有
系统 2019-09-27 17:55:24 2308
Python标准异常总结这是错误类型表总结,不用记住,只要有印象即可,碰到需要处理的错误类型可以查表。一般捕获错误和处理错误使用try-except-finally:try:#检测范围exceptException[asreason]:#出现异常(Exception)后的处理代码finally:#无论如何都会执行的代码,如关闭文件(f.close())等错误类型错误解释AssertionError断言语句(assert)失败AttributeError尝试
系统 2019-09-27 17:55:11 2308
用扩展名判断文件格式非常简单,但是有可能是错误的。jpeg文件有固定的文件头,其文件头的格式如下:StartMarker|JFIFMarker|HeaderLength|Identifier0xff,0xd8|0xff,0xe0|2-bytes|"JFIF\0"所以可以通过文件头的方式快速判断文件格式:defis_jpg(filename):data=open(filename,'rb').read(11)ifdata[:4]!='\xff\xd8\xff
系统 2019-09-27 17:54:42 2308
转载:hackpython简介Flask是Python中有名的轻量级同步web框架,在一些开发中,可能会遇到需要长时间处理的任务,此时就需要使用异步的方式来实现,让长时间任务在后台运行,先将本次请求的响应状态返回给前端,不让前端界面「卡顿」,当异步任务处理好后,如果需要返回状态,再将状态返回。怎么实现呢?使用线程的方式当要执行耗时任务时,直接开启一个新的线程来执行任务,这种方式最为简单快速。通过ThreadPoolExecutor来实现fromflaski
系统 2019-09-27 17:53:32 2308
第一种,使用create_connection链接,需要pipinstallwebsocket-client(此方法不建议使用,链接不稳定,容易断,并且连接很耗时)importtimefromwebsocketimportcreate_connectionurl='wss://i.cg.net/wi/ws'whileTrue:#一直链接,直到连接上就退出循环time.sleep(2)try:ws=create_connection(url)print(ws
系统 2019-09-27 17:52:20 2308