Python
叶玄青
我是谁
展开
-
python解析html tag
有时候网页上信息太多,一方面用肉眼看容易出错,另一方面点击了网页的链接之后,原来页面的信息就被刷新了,这时候如果能通过程序自动的分析网页上的信息就好了,python的HTMLParser能够很好的解决这个问题,当然它只是把内容抓取下来,具体分析还得看不同人的需求。from HTMLParser import HTMLParserclass MyHTMLParser(HTMLParser):原创 2016-10-25 16:59:43 · 1776 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:专栏介绍
本专栏目的:从底层构建python based系统,然后基于python实现人工智能,进行训练,期望能替代自己的工作。工作目前主要有两方面: 1. 辅助会议纪要中的音频翻译。 2. 代码编写 3. 金融行情研究原创 2017-01-04 07:59:10 · 1385 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:实现语法支持
第九部分开始了对语言特性的支持,根据语言定义BNF:program→compound_statement DOT program\to compound\_statement\ DOT compound_statement→BEGIN statement_list END compound\_statement\to BEGIN\ statement\_list\ END statement_原创 2017-02-20 15:14:11 · 1000 阅读 · 0 评论 -
python解释器实现以及嵌入式应用:符号表以及语法检查
本章实现了独立的符号表,实现了赋值语句语法检查。谈谈first集和follow集几乎任何一本关于编译器设计的书在讲到语法分析的时候都会介绍first集合和follow集合,故名思议,first集合就是通过向前读取一个标识符,判断这个标识符是否且仅是某一产生式右侧符号的第一个标识符,如果是的话,就可以推断要应用该条规则进行推导。follow集指当前标识符是否是某一条规则的后面一个符号,对于LL(1)来原创 2017-02-20 14:54:57 · 1945 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:抽象语法树
英文原文地址第七部分开始引入了抽象语法树,开始考虑到代码的耦合性。剥离了lexer,parser和interpreter。值得一提的是,上一篇随笔提到的右括号匹配问题在这里解决了,也是通过添加额外代码解决的。def parse(self): node = self.expr() if self.current_token.type != EOF: self.error原创 2017-02-15 16:57:33 · 1490 阅读 · 0 评论 -
Django搭建网站:安装和测试
社会上崇敬名人,于是以为名人的话就是名言,却忘记了他所以得名是那一种学问和事业。 —— 鲁迅有很多知名的网站是利用python搭建的,例如豆瓣,知乎,YouTube。本文对Django进行初步常识,看看如何利用这个现成的框架来快速搭建一个网站。1. 安装Django在Ubuntu 16.04下,直接host > pip install Django就安装好了,例如我的是Django-1.10.6。原创 2017-03-03 15:50:58 · 1591 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:Let's Build a Simple Interpreter(part12)
英文原文 不要担心走得缓慢;害怕原地不动! - 中国谚语(我表示怀疑!!!)大家好,欢迎回来!今天我们将要走几小步来学习如何识别Pascal过程声明。什么是过程声明?一个过程声明是一个语言结构,它定义了一个标记符,以及一个关联的Pascal代码块。在我们深入讨论之前,说几句关于Pascal过程以及他们的声明:Pascal过程没有返回语句,在到达程序块末尾的时候退出。Pascal过程可以相互翻译 2017-02-20 23:04:07 · 1024 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:认识Micro Python
micropython是Damien George发明的运行在MCU之上的python,项目主页为 https://github.com/micropython/micropythonMicro Python的软件特点:Python 3 语法 1. 完整的Python词法分析器, 解析器,编译器,虚拟机和运行时。 2. 包含命令行接口,可离线运行。 3. Python 字节码由内置虚拟机编译原创 2016-12-23 18:53:44 · 8138 阅读 · 1 评论 -
基于tkinter实现编辑器
代码位于 note editor仓库。一、Feature List1、行号显示,滚动条支持。 2、自动完成Windows/Linux/Darwin系统下的字体适配,一键切换中英文自体。 3、带词法分析,可以扩展诸如语法高亮等功能。 4、打开文件、保存文件、退出程序的快捷键支持。二、Widgets List原创 2017-05-07 13:43:20 · 2161 阅读 · 1 评论 -
Tkinter Text 控件
为了搞清楚Text控件中如何使用光标位置,可以通过如下代码进行测试,python版本为2.7.13。if text.edit_modified(): print text.index(END) text.edit_modified(False)#外面套个定时器循环检测经过测试后总结如下:INSERT 当前光标位置,即插入文本的位置END 文本的末尾位置,始终表示下一行行首位原创 2017-04-26 00:06:52 · 1626 阅读 · 0 评论 -
Euler Project : Problem 22
题面是这样的: Using names.txt (right click and ‘Save Link/Target As…’), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabet原创 2017-05-19 00:34:37 · 708 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:一个四则运算计算器的实现
这是《Let’s build a simple interpreter》中第四部分的练习原文参考一 BNFexpr→term((PLUS/MINUS)term)∗ expr\to term((PLUS/MINUS)term)* term→factor((MUL/DIV)factor)∗ term\to factor((MUL/DIV)factor)* factor→INTERGER factor\t原创 2017-02-13 12:50:52 · 2688 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:1到6章总结
通过1到6部分的学习,实现了一个能进行四则运算,具有优先级,支持括号的计算器。能够满足一般计 算需求的计算器。内容概要巴科斯范式表示grammar。基本知识,以及如何将优先级信息以BNF形式表示。syntax diagram 展示识别流程。等效于BNF,BNF可以理解成文本化的syntax diagram。BNF到python代码的转换体会这六部分内容比较简单,基本上前一部分的练习做完后,原创 2017-02-20 15:06:35 · 1577 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:7到11章总结
从第7章开始引入了抽象语法树,第8章通过扩展抽象语法树引入了单元运算符’+/-‘。第9章扩展pascal语法支持,扩展方法和第8章是一样的,支持begin/end语句,赋值语句,引入全局符号表,存储变量内容。第10章也是语法扩展,支持更多的语法(pragram,var,代码注释)能够识别pascal程序模式,可以算是一个初具功能的解释器了。第11章介绍引入符号表,基于符号表实现语法检查(变量声明,类原创 2017-02-20 15:16:34 · 748 阅读 · 0 评论 -
获取股票数据
有个叫tushare的python包,可以很方便的用来获取A股数据,官方网址在 http://tushare.org/classifying.html1. Linux Mint下安装tushare系统环境兼容 为了防止后续遇到一些系统库或者头文件找不到的问题,先安装一些必须的包$apt-get install build-essential devscripts python-dev包管理原创 2016-10-26 11:11:15 · 1024 阅读 · 0 评论 -
python tkinter应用:文本编辑器
前段时间,由于女友经常写会议纪要,需要能够在同一窗口查看两个文件的编辑器,但是word目前不支持,就想着用python写一个,这里就是最初的demo,这长相实在不敢恭维啊。一. tkinter介绍Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里。Tk8.0的后原创 2016-10-26 13:51:39 · 3476 阅读 · 0 评论 -
编译器设计:词法分析
通过python实现了一个能够识别单词的程序,单词定义为 以字母开头的任意数字和字母的组合1. re模块定义字母和数字pattern,通过match对字符进行匹配2. enum模块用来定义识别单词过程中的状态,这里定义了 初始态 过程态 完成态 错误态 开始识别单词 已经识别单词的一部分 识别到一个单词 出错代码如下,整个模块通过对字符串line进行分析,所以lin原创 2016-11-29 09:31:26 · 3499 阅读 · 0 评论 -
Python2.7的UnicodeEncodeError: 'ascii' codec can't encode xxxx
今天写了一段python,发现f.write()的时候报error: UnicodeEncodeError: ‘ascii’ codec can’t encode之前也遇到过,当时是通过在调用字符串方法decode()来进行转换的。 其实可以通过codecs模块打开文件,同时指定编码方式。参考代码如下:#-*-coding:utf-8 -*-import urllib2import Beaut原创 2016-10-31 23:44:36 · 752 阅读 · 0 评论 -
python获取代理服务器地址
啥也不说,先上代码#-*-coding:utf-8 -*-#-*-encoding:utf8 -*-import urllib2import BeautifulSoupimport codecsUser_Agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'header = {}原创 2016-11-01 10:44:23 · 5145 阅读 · 0 评论 -
编译器设计: naive compiler
Compiler Design一 方法介绍1-1 Source Language选择C语言作为源语言,从最简单的语句开始,一步一步完善语言支持。1-2 Implementation Language选择python作为实现语言,主要是可以方便测试,而且处理字符很方便。1-3 Implementation PlatformIntel X86,因为我的笔记本是这个,方便。1-4 测试case以及测试d原创 2016-11-22 18:34:52 · 1553 阅读 · 0 评论 -
org mode文档转成markdown格式
我喜欢org mode的简洁,特别是和emacs的完美兼容,用她写文档那叫一个爽,再加上macbook下emacs操作手感极好,有点恋恋不舍。但是写博客啥的基本都是用markdown,于是就写了个python程序,用来把org mode文档转成markdown。以后就可以在本地写好org文档,要发博客的时候用程序转一下拷贝到博客编辑页面就可以了,哦yeah….程序很简单,就实现了两个功能,用来兼容c原创 2016-12-19 13:55:11 · 3674 阅读 · 4 评论 -
python __str__和format方法
介绍__str__和format方法。1. str__str__ 被print函数调用。如果不是要用str()函数转换,当打印一个类的时候,print调用的就是类里面的定义的__str__class Token(object): def __init__(self, type, value): self.type = type self.value = val原创 2017-02-20 12:16:23 · 1158 阅读 · 0 评论 -
python解释器实现及其嵌入式应用:内部模块定义及扩展
本文介绍mp内部模块的实现,如何自定义内部模块,面向读者:对python编译器内部实现有兴趣。要求:只需具有python应用经验即可。 发表于 Micropython开发:内部模块定义及扩展Micropython需要支持导入模块,同时,设备驱动也要能够以python模块的形式工作,那么在python解释中必须实现这种接口。外部模块的定义位于$(tree)/extm原创 2017-01-17 14:33:06 · 2781 阅读 · 2 评论 -
python解释器实现及其嵌入式应用:解释器移植
一 概述1-1 知识储备1-2 成果展示二 移植过程2-1 代码选型2-2 启动代码实现2-3 指令集兼容4 修改内存分布5 交互界面三 总结与展望一 概述micropython:介绍与编译 一文介绍了Micropython的语法特点,当前的应用平台以及在linux下的试用。这篇文章接着介绍如何将Micropython编译器移植到exynos 4412平台下,让他工作起来。1-1原创 2017-01-12 16:01:34 · 6175 阅读 · 1 评论 -
python搜索效率研究
天地不仁,以万物为刍狗 –老子本文来研究在python中查找元素的效率问题,实验方法如下:初始化一个大列表和字典,其中分别存放了10000000个元素。查找的元素以1000000的间隔递增,检测程序执行速度。自己实现顺序比较查找,用同样的方法进行测试,并和其他方法进行对比。一、程序实现程序实现包含上述三个查找算法,均很简单。1.1 通过item in list实现查找def find_it原创 2017-06-04 21:38:48 · 1182 阅读 · 0 评论