1.场景描述一直做java,因项目原因,需要封装一些经典的算法到平台上去,就一边学习python,一边网上寻找经典算法代码,今天介绍下经典的K-means聚类算法,算法原理就不介绍了,只从代码层面进行介绍,包含:rest接口、连接mpp数据库、回传json数据、下载图片及数据。2.解决方案2.1项目套路(1)python经典算法是单独的服务器部署,提供rest接口出来,供java平台调用,交互的方式是http+json;(2)数据从mpp数据库-Green
系统 2019-09-27 17:46:08 2273
LRU:leastrecentlyused,最近最少使用算法。它的使用场景是:在有限的空间中存储对象时,当空间满时,会按一定的原则删除原有的对象,常用的原则(算法)有LRU,FIFO,LFU等。在计算机的Cache硬件,以及主存到虚拟内存的页面置换,还有Redis缓存系统中都用到了该算法。我在一次面试和一个笔试时,也遇到过这个问题。LRU的算法是比较简单的,当对key进行访问时(一般有查询,更新,增加,在get()和set()两个方法中实现即可)时,将该k
系统 2019-09-27 17:45:30 2273
每当我进行内网渗透面对大量主机和服务时,我总是习惯使用自动化的方式从nmap扫描结果中提取信息。这样有利于自动化检测不同类型的服务,例如对web服务进行路径爆破,测试SSL/TLS服务使用的密钥或协议,以及其他有针对性的测试。我在渗透测试中也会经常使用到IPthon或*nixshell,而这些又都能够通过Python来访问,无论是直接在脚本中使用、在REPL环境下使用,还是将代码写入到磁盘上然后通过shell命令访问都是非常好用的。为了完成这些,libnm
系统 2019-09-27 17:38:10 2273
python字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:1下面的是按照value的值从大到小的顺序来排序。dic={'a':31,'bc':5,'c':3,'asd':4,'aa':74,'d':0}dict=sorted(dic.items(),key=lambdad:d[1],reverse=True)print(dict)输出的结果:[('aa',74),('a
系统 2019-09-27 17:38:09 2273
摘要在使用Python写程序时,经常需要输出系统的当前时间以及计算两个时间之间的差值,或者将当前时间加减一定时间(天数、小时、分钟、秒)来得到新的时间,这篇文章就系统的对这些进行总结。码字不易,喜欢请点赞!!!包这里主要使用Python的datetime包实现上述功能。输出当前系统时间输出结果从总到右分别为Year、Month、Day、Hour、Minute、Second,最后一个MicroSeconds就不用管了。标准化输出方法strftime()其中:
系统 2019-09-27 17:56:32 2272
字符串print('---lesson3_字符串---')'''知识点汇总:1-什么是字符串2-字符串的定义:1-单引号-''-----type(name)2-双引号-""-----"tom"注意:不能混着SyntaxError:EOLwhilescanningstringliteral3-三引号''''''""""""使用区别:1-如果字符串本身有'那么就用双引号"2-如果字符串本身有"那么就用单引号'3-可以使用转义\4-三引号:1-字符串定义2-注释
系统 2019-09-27 17:52:39 2272
和C语言一样,引号属于特殊功能字符,不能够像普通字符那样直接通过print打印,需要进行一些处理,比如说反斜杠转义等。这里介绍几种打印三引号的方法,希望对需要的朋友有用。1、第一中方法比较简单,直接使用三个反斜杠进行转义,也就是:print("\"\"\"");因为\"代表一个引号,那么连续三个\"自然就是三引号了。第二种��嗦一点,通过变量打印三引号,通过菜单栏的“File”->“NewFile”建立一个模块。3、在模块当中输入:a="\""print(
系统 2019-09-27 17:49:45 2272
详细版本见个人博客:Python用list实现堆栈和队列Python中可以用list来模拟栈和队列:栈(stack):只能在一端进行数据操作,遵循后进先出(LIFO)原则队列(queue):可以在两端进行数据操作,遵循先进先出(FIFO)原则,出队列的一端称为队首,入队列的一端称为队尾一、栈1、栈要记录的数据栈顶位置top:注意这个top有两种理解方式,一种是表示栈的最后一个数据的位置,另一种是表示栈的最后一个数据的下一个位置,这两种理解对栈的操作代码有一
系统 2019-09-27 17:49:20 2272
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。特性:无顺序、去重、查询速度快,比列表快多了、比list占用内存多字典={key:value}创建1,使用”{}”创建:dd={'a':'aaa','b':'bbb'}2,使用dict创建:li
系统 2019-09-27 17:48:37 2272
本文以实例详解了python的迭代器与生成器,具体如下所示:1.迭代器概述:迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。1.1使用迭代器的优点对于原生支持随机访问的数据结构(如tuple、list),迭代器和经典for循环的索引访问相比并无优势,反而丢失了索引值(可以使用内建函数enumerate()找回这个索引值)。但对于无法随机访
系统 2019-09-27 17:47:50 2272
导入开发包pipinstallxlrd==1.2.0解析xls文件#filename文件路径#file_contents文件上传解析文件内容defparse_xls(filename=None,file_contents=None):result={"error":{},"data_list":[],"model_name":""}work_sheet=Nonetry:iffilename:work_sheet=xlrd.open_workbook(fil
系统 2019-09-27 17:47:22 2272
很多时候我们喜欢在自己电脑的终端直接ssh连接Linux服务器,而不喜欢使用那些有UI界面的工具区连接我们的服务器。可是在终端使用ssh我们每次都需要输入账号和密码,这也是一个烦恼,所以我们可以简单的打造一个在Linux/Macos运行的自动ssh登录远程服务器的小工具。来个GIF动画示例下先:概述我们先理一下我们需要些什么功能:1.添加/删除连接服务器需要的IP,端口,密码2.自动输入密码登录远程服务器对,我们就做这么简单的功能开始写代码代码比较长,所以
系统 2019-09-27 17:46:38 2272
1.进程和线程2.同步和异步3.协程4.生成器到协程5.asyncio模块(协程模块)………………………………………………………………………………1.进程和线程进程相当于一个任务,比如做饭线程相当于操作,做饭需要解冻肉,洗菜,煮米饭一个进程任务,做饭下需要多进程做饭的多个进程,如上GIL全局解释器锁是用在IO密集型(大量的文件读写,多次请求网络数据)的多线程中对比单线程和多线程的例子:调用包time和线程包:threading先模拟请求网络数据的函数req
系统 2019-09-27 17:46:22 2272
前言Python的编码问题基本是每个新手都会遇到的坎,但只要完全掌握了就跳过了这个坑,万变不离其中,下面给大家整理了在python2.7遇到的编码问题,下面来一起看看吧。一、直接在python文件内修改系统编码默认的编码格式是ascii,我们可以直接修改为utf-8importsysreload(sys)sys.setdefaultencoding('utf-8')二、在输入输出的时候,修改编码格式#解码为GBK,再次编码为UTF-8html_doc=un
系统 2019-09-27 17:37:58 2272
另外一类常用的模板标签是通过渲染其他模板显示数据的。比如说,Django的后台管理界面,它使用了自定义的模板标签来显示新增/编辑表单页面下部的按钮。那些按钮看起来总是一样的,但是链接却随着所编辑的对象的不同而改变。这就是一个使用小模板很好的例子,这些小模板就是当前对象的详细信息。这些排序标签被称为包含标签。如何写包含标签最好通过举例来说明。让我们来写一个能够产生指定作者对象的书籍清单的标签。我们将这样利用标签:{%books_for_authorautho
系统 2019-09-27 17:37:40 2272