Python之父再发文:构建一个PEG解析器image花下猫语:Python之父在Medium上开了博客,现在写了两篇文章,本文是第二篇的译文。前一篇的译文在此,宣布了将要用PEG解析器来替换当前的pgen解析器。本文主要介绍了构建一个PEG解析器的大体思路,并介绍了一些基本的语法规则。根据Python之父的描述,这个PEG解析器还是一个很笼统的实验品,而他也预告了,将会在以后的系列文章中丰富这个解析器。阅读这篇文章就像在读一篇教程,虽然很难看懂,但是感觉
系统 2019-09-27 17:51:21 2172
函数:split()Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)os.path.split():按照路径将文件名和路径分割开一、函数说明1、split()函数语法:str.split(str="",num=string.count(str))[n]参数说明:str:表示为分隔符,默认为空格,但是不能为空('')。若字符串
系统 2019-09-27 17:50:49 2172
UnicodeDecodeError:'gbk'codeccan'tdecodebyte0x80inposition128:illegalmultibytesequence说到底是open()使用方法。原本程序是这样的:(重点看第4行)fromtkinterimport*importosdefopenFile():f=open('D:\Pythoncharmprojccts\SC\main_window.py',mode='r')whileTrue:dat
系统 2019-09-27 17:50:35 2172
前天在微信上遇到一个小伙伴问我一个关于Sublimetext配置Python解释器的问题,可能是初学者,对这方面还不是很懂,想使用快捷键但是徒劳一场,因为缺少Python解释器,直接按下快捷键Ctrl+B是不会得到想要的结果的。鉴于此,如果有小伙伴想使用Sublime跑Python程序的话,那么配置Python解释器是必不可少的一步,这里小编整理这篇手把手教程,希望为后来者铺砖引路。下面是详细教程:1、首先打开Sublime,如下图所示,然后选择“Pref
系统 2019-09-27 17:50:11 2172
一、ConfigParser简介ConfigParser是用来读取配置文件的包。配置文件的格式如下:中括号“[]”内包含的为section。section下面为类似于key-value的配置内容。复制代码代码如下:[db]db_host=127.0.0.1db_port=22db_user=rootdb_pass=rootroot[concurrent]thread=10processor=20中括号“[]”内包含的为section。紧接着section为
系统 2019-09-27 17:50:05 2172
对于Linux用户来说,命令行的名声相当的高。不像其他操作系统,命令行是一个可怕的命题,但是对于Linux社区中那些经验丰富的大牛,命令行却是最值得推荐鼓励使用的。通常,命令行对比图形用户界面,更能提供更优雅和更高效的解决方案。命令行伴随着Linux社区的成长,UNIXshells,例如bash和zsh,已经成长为一个强大的工具,也是UNIXshell的重要组成部分。使用bash和其他类似的shells,可以得到一些很有用的功能,例如,管道,文件名通配符和
系统 2019-09-27 17:49:16 2172
一、安装Python1)官网下载安装2)配置环境变量(未勾选自动配置需要手动配置)3)检查是否安装成功(交互窗口中输入Python-v)二、Selenium3.X+FireFox驱动+geckodriver1、安装selenium:1)W+r输入cmd,然后输入pipinstallselenium2)安装FireFox,添加附加组件seleniumIDE、FireBUG3)https://github.com/mozilla/geckodriver/rel
系统 2019-09-27 17:48:46 2172
练习介绍【程序功能】我们将完成一个和语义识别相关的爬虫程序,输入任意词汇、句子、文章或段落,会返回联想的词汇。【背景信息】有一个非常牛的处理语言的网站nlpir,上面有非常多的处理语言的功能(如分词标注、情感分析、相关词汇)。举个例子,我输入“音乐剧”:然后点击“Word2vec”(返回联想词汇的功能):下面就会返回“音乐剧”的联想词汇:当然这个网站还有其他的功能,像“分词标注”,就是把你输入的文本切成一个个的词,并且把这些词的词性都标出来;还有“情感分析
系统 2019-09-27 17:48:22 2172
详解Python序列化Serialize和反序列化Deserialize序列化(serialization)序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。序列化和反序列化的目的1、以某种存储形式使自定义对象持久化;2、将对象从一个地方传递到另一个地方。3、使程序更具维护性序列化由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象
系统 2019-09-27 17:48:16 2172
Python虽然语法简单,通俗易懂,但是再简单它也是一门语言,就像一棵大树,总有一些树枝是弯弯绕绕的,让新手看完之后一脸懵逼,今天我们就来说说这几个点,反正我学的时候是很困惑的!01.函数里面的*args1).可变参数这个是什么鬼,尤其是有其他c,c++语言基础的人,看到这个点,一定懵逼了,难道是指针,两个**又是什么鬼?其实这个Python里面的函数入参的几种形式,假如你来设计一个语言,一个函数fun(),里面要传参数进来,要考虑扩展性:变量会有很多种形
系统 2019-09-27 17:47:45 2172
前几天,我估摸着做一个能生成QRCode小程序,并能用wxPython在屏幕上显示出来。当然,我想用纯Python实现,观望了一会后,我找到了三个候选:github上的python-qrcodesourceforge上的pyqrcodeGoolgecode上的pyqrnative我尝试了python-qrcode以及pyqrnative,因为它们能够运行在Windows/Mac/Linux。也不需要依赖额外的其他库除了Python图像库。pyqrcode项
系统 2019-09-27 17:47:37 2172
1.Request库Request库有七个基本方法:首先以requests库的request方法进行讲解:其次,以其中典型的get方法进行说明:1.r=requests.get(url)首先get构造一个向服务器请求资源的Request对象,r是一个返回的一个包括服务器资的Response对象。2.r=requests.get(url,params=None,**kwargs)params:url中的额外参数,字典或者字节流格式...可以修改url内容**
系统 2019-09-27 17:46:57 2172
本文以一段简单的监听鼠标、键盘事件的程序,实现获取用户的输入(比如登录某些网站的账号、密码)的功能。经测试,对于一台“裸奔”的电脑,完全能获取到用户输入的任何信息;但是如果安装了杀毒软件,就够呛了。具体实现方法如下:一、代码部分:获取用户输入信息,并与截图一起保存到XX目录下#-*-coding:utf-8-*-#importpythoncomimportpyHookimporttimeimportsocketfromPILimportImageGrab#
系统 2019-09-27 17:46:23 2172
当你打开一个.py文件时,经常会在代码的最下面看到if__name__=='__main__':,现在就来介绍一下它的作用.模块是对象,并且所有的模块都有一个内置属性__name__。一个模块的__name__的值取决于您如何应用模块。如果import一个模块,那么模块__name__的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这种情况下,__name__的值将是一个特别缺省"__main__"。//////
系统 2019-09-27 17:45:26 2172
1.使用测量工具,量化性能才能改进性能,常用的timeit和memory_profiler,此外还有profile、cProfile、hotshot等,memory_profiler用了psutil,所以不能跟踪cpython的扩展;2.用C来解决费时的处理,c是效率的代名词,也是python用来解决效率问题的主要途径,甚至有时候我都觉得python是c的完美搭档。常用的是Cython,直接把py代码c化然后又能像使用py包一样使用,其次是ctypes,效
系统 2019-09-27 17:37:43 2172