花下猫语:近日,Python之父在Medium上开通了博客,并发布了一篇关于PEG解析器的文章(参见我翻的全文译文)。据我所知,他有自己的博客,为什么还会跑去Medium上写文呢?好奇之下,我就打开了他的老博客。最后一篇文章写于2018年5月,好巧不巧,写的竟是pgen解析器,正是他在新文中无情地吐槽的、说将要替换掉的pgen。在这篇旧文里,Guido回忆了他创造pgen时的一些考量,在当时看来,创造一个新的解析器无疑是明智的,只不过时过境迁,现在有了更好
系统 2019-09-27 17:55:03 1990
装饰器这东西我看了一会儿才明白,在函数外面套了一层函数,感觉和java里的aop功能很像;写了2个装饰器日志的例子,第一个是不带参数的装饰器用法示例,功能相当于给函数包了层异常处理,第二个是带参数的装饰器用法示例,将日志输出到文件。```#coding=utf8importtracebackimportloggingfromlogging.handlersimportTimedRotatingFileHandlerdeflogger(func):defin
系统 2019-09-27 17:54:25 1990
一组有序项目的集合可变的数据类型【可进行增删改查】列表中可以包含任何数据类型,也可包含另一个列表【可任意组合嵌套】列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔列表可通过序号访问其中成员定义>>>l=[]#空列表>>>l=[1,2,3]>>>l=[1,2,3,['a','b']]>>>l=list('linuxeye')>>>l['l','i','n','u','x','e','y','e']>>>l=list(range(5))>>>l[0,
系统 2019-09-27 17:53:39 1990
随机森林是一种集成学习方法,基本思想是把几棵不同参数的决策树(参考:Python+sklearn决策树算法使用入门)打包到一起,每棵决策树单独进行预测,然后计算所有决策树预测结果的平均值(适用于回归分析)或所有决策树“投票”得到最终结果(适用于分类)。在随机森林算法中,不会让每棵树都生成最佳的节点,而是在每个节点上随机选择一个特征进行分裂。扩展库sklearn在ensemble模块中提供了随机森林分类器RandomForestClassifier和随机森林
系统 2019-09-27 17:52:35 1990
python的布尔值True和False相当于1和0,True==1,False==0,True+1=2是成立。在if()条件判断语句中,0、空字符串("")、None、空列表([])、空元组(())、空集合({})这六种都等价于False,详见示例1,但是用==(比较值是否相等,不比较引用地址)比较时只有0==False为True,其他五种都是False,示例2。示例1#示例1if0:print("0")elif"":print("\"\"")elifN
系统 2019-09-27 17:50:47 1990
前言“列表(list)与元组(tuple)两种数据类型有哪些区别”这个问题在初级程序员面试中经常碰到,超出面试官预期的答案往往能加不少印象分,也会给后续面试顺利进行提供一定帮助,这道题主要考察候选人对Python基本数据结构的掌握程度,属于简单类型的送分题,那么该如何来回答才不至于丢分?相同点:都是序列类型回答它们的区别之前,先来说说两者有什么相同之处。list与tuple都是序列类型的容器对象,可以存放任何类型的数据、支持切片、迭代等操作>>>foos=
系统 2019-09-27 17:50:39 1990
前言其实有一个模块也支持执行系统命令,那个模块就是sys.system,但他执行系统命令会直接通过主进程去执行命令,那假如,该命令的执行需要耗费一个小时,那么主进程会卡一个小时,而不会去干别的事,这样就会导致程序的运行效率低下。如果由subprocess去执行系统命令的时候并不会让主进程去执行,而是主进程会开辟出一个子进程去执行,并不会影响到主进程的运行,主进程该干嘛就干嘛,那么又有个问题,大家都知道进程之间的内存空间是独立的,也就是说进程之间是不能相互访
系统 2019-09-27 17:50:09 1990
我想要向您介绍能想像到的开始GUI编程的最简单方法,就是使用Scriptics的TK和Tkinter封装器。我们将与developerWorks中的“Python中的curses编程”提到的curses库进行很多比较。除了curses实现文本控制台而TK实现GUI这一差别之外,这两个库有着惊人相似的接口。在使用任何一个库之前,需要基本了解窗口和事件循环,并参考可用的窗口小部件。(好,好的参考和适量的练习。)如同关于curses的文章,本文仅讨论Tkinte
系统 2019-09-27 17:50:00 1990
最近这段时间,常常有人在后台留言:该不该学Python?如何学Python?鉴于大家都有这方面的困惑今天就给大家推荐一本巨有影响力的Python书火到什么地步呢?在京东上常常卖断货!上线2月就成为畅销王!好评不断!这本书可谓是笔者独家私藏图书之一了,对我学习Python有着莫大的帮助,这次拿出来给大家分享一下PS:文末还将赠送5门课程!这本基于3.6的Python书究竟好在哪?这本书就是《疯狂Python讲义》,作为作者李刚的死忠粉儿,我觉得优点如下:1.
系统 2019-09-27 17:49:38 1990
发现问题上周,我的测试同事告诉我,你的用户名怎么还允许中文啊?当时我心里就想,你们测试肯定又搞错接口了,我用的是正则w过滤了参数,怎么可能出错,除非Python正则系统出错了,那是不可能的。本着严谨的作风,我自己先测试一下,没问题看我怎么怼回去。可是当我测试,我就懵逼了,中文真TM都验证通过,不对啊,我以前也是这么过滤参数的,测试没问题啊?唯一的区别是现在用的是Python3。上网搜了一圈,发现没有一篇文章讲述Python2和Python3的正则在处理字符
系统 2019-09-27 17:49:01 1990
在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧~!其实你很厉害的,右键查看页面源代码。我们可以通过python来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能
系统 2019-09-27 17:47:33 1990
我们都知道,序列可以迭代。但是,你知道为什么吗?本文来探讨一下迭代背后的原理。序列可以迭代的原因:iter函数。解释器需要迭代对象x时,会自动调用iter(x)。内置的iter函数有以下作用:(1)检查对象是否实现了iter方法,如果实现了就调用它,获取一个迭代器。(2)如果没有实现iter方法,但是实现了getitem方法,而且其参数是从零开始的索引,Python会创建一个迭代器,尝试按顺序(从索引0开始)获取元素。(3)如果前面两步都失败,Python
系统 2019-09-27 17:46:04 1990
今天有个需要需要传递中文参数给URL但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误。烦的很。所以我们果断选择用urlencode来处理中文,由于国内外网站编码不同,国内是GBK的,国外是UTF8的。>>>importsys>>>sys.stdin.encoding'GBK'表示我们的环境是GBK的>>>importurllib>>>urllib.quote('编码坑爹')'%B1%E0%C2%EB%BF%D3%B5%F9'这样我
系统 2019-09-27 17:38:34 1990
Python文件打开模式Pythonopen()函数Python内置函数Python内置函数pythonopen()函数用于打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。函数语法open(name[,mode[,buffering]])参数说明name:一个包含了你要访问的文件名称的字符串值。mode:mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读®。buffe
系统 2019-09-27 17:56:46 1989
有时候我们的数据是按某个频率收集的,比如每日、每月、每15分钟,那么我们怎么产生对应频率的索引呢?pandas中的date_range可用于生成指定长度的DatetimeIndex。我们先看一下怎么生成日期范围:pd.date_range(startdate,enddate)1.生成指定开始日期和结束日期的时间范围:In:importpandasaspdindex=pd.date_range('4/1/2019','5/1/2019')print(inde
系统 2019-09-27 17:56:20 1989