def

Python实现SLR(1)语法分析器,编译原理yyds!

為{幸葍}努か 提交于 2020-11-14 08:49:53
Python实现SLR(1)语法分析器 实验课前一天晚上肝了个SLR语法分析器,当时还发朋友圈语法分析器和我晚上总得走一个,从第二天状态来看,应该是我们俩一起走了(笑 编写的时间比较仓促,所以代码有些地方实现不是很好,存在一些问题,以后有时间的话再来修补一下,比如在对两个项目规范族进行比较时效率比较低,first集和follow集中对连续多个非终结符推到ε的情况下可能会有bug,但在我的文法定义中特意绕开了ε,勉强能用。 为了方便代码阅读,加入了许多注释后的打印语句,将这些打印语句取消注释后运行,能够告诉你当前这段代码所做的事。 在编写过程中,尽量对模块进行封装,把逻辑和文法定义分开,做到文法可以方便地修改,但时间过于仓促可能还是有点小问题。当文法修改时,修改 getCol函数(该函数将终结符和非终结符映射到action和goto表中相应的列),initProduction函数(该函数定义了文法产生式(拓广文法),在本文中有28个产生式),source(输入单词序列),varset(非终结符集合),terminalset(终结符集合) SLR(1)分析流程 输入文法 求first集 求follow集 构造LR(0)项目集DFA 构造Action和Goto 按照Action和Goto进行分析 1.主要数据结构定义和基础函数: 基础函数 isVariable函数判断是不是非终结符

Python学习之web框架 Flask

百般思念 提交于 2020-11-14 07:54:04
一、通过PIP 安装Flask 1.1 Windows环境安装pip A、首先PIP进入官网( https://pypi.python.org/pypi/pip )下载gz包 B、对gz压缩包进行解压,解压目录为(C:\Python\pip-10.0.1) C、通过python命令执行,解压目录下的setup.py文件,安装pip python setup.py install D、对pip进行环境配置(安装完pip后,会在python的scripts文件夹中多处pip.exe文件) 1.2安装flask A、安装Pip完成后可以通过命令查看是否成功 pip -V B、通过Pip命令安装flask pip install flask 二、Flask 快速入门 2.1 第一个最小应用 from flask import Flask app = Flask(__name__) @app.route( ' / ' ) def hello_world(): return ' Hello World! ' if __name__ == ' __main__ ' : app.run() 把它保存成 hello.py (或者类似的文件),然后用 Python 解释器运行它。确保你的应用不叫做 flask.py , 因为这会与 Flask 本身冲突。 python hello.py *

Python AttributeError: 'Module' object has no attribute 'STARTF_USESHOWINDOW'

痴心易碎 提交于 2020-11-14 07:28:34
夫学须志也,才须学也,非学无以广才,非志无以成学。——诸葛亮 生活有度,自得慈铭 ——杜锦阳 <hr/> 今天新来的同事安装环境遇到个莫名其妙的问题: AttributeError: 'Module' object has no attribute 'STARTF_USESHOWINDOW' 其它小伙伴好像都没遇到过,后来发现,应该是系统的问题,因为还出现了字节混乱的错误: UNICODEENCODEERROR:‘ascii’ code can't encode... 这个先不提,我们先来看看下面的错误: STARTF_USESHOWINDOW 因公司信息,所以打上马赛克了。 百度了一会,发现网上解决方案都不靠谱。 出错原因:使用了subprocess模块,系统找不到这个模块。 你可以做个测试:在python下输出subprocess也会报这个错。 后来想到有可能系统环境的问题和模块代码引起,起初是替换了 Lib\site-packages\matplotlib\compat 下的 subprocess.py ,后来想到这是子模块,于是再替换了Lib\下的 subprocess.py ,再运行,一切正常。 国内外论坛都没找到相关的解释,后来去翻了源码才知道了原因 ,Cmd是WIN下命令符,pyc是编译后运行的,和JAVA一样,一次编译多处运行

ABAP-面向对象的开发

送分小仙女□ 提交于 2020-11-14 07:02:00
转载: https://blog.csdn.net/zhongguomao/article/details/70266246 在程序中, 对象的识别和寻址是通过对象引用来实现的, 对象引用变量可以访问对象的属性和方法. ABAP 中的类也有程序内部的局域类和全局类之分, 其作用范围不同. ABAP中的全局类是通过ABAP工作台中的类创建工具 Class Builder SE24开发的, 保存在系统类库程序 Class Pool 中, 可供所有程序作用. 一. 程序中类的定义. 1. 类声明及实现 * Class Declarations CLASS application DEFINITION. PUBLIC SECTION. METHODS: show_text. PRIVATE SECTION. DATA text(100) TYPE c VALUE 'This is my first ABAP Object.'. ENDCLASS. * Class Implementation CLASS application IMPLEMENTATION. METHOD show_text. WRITE text. ENDMETHOD. ENDCLASS. 2. 成员可见性. ①公有: 可被所有对象使用. PUBLIC SECTION. ②保护: 只能被本类及其派生类中的方法使用.

【Python3爬虫】学习分布式爬虫第一步--Redis分布式爬虫初体验

不想你离开。 提交于 2020-11-14 07:01:45
一、写在前面   之前写的爬虫都是单机爬虫,还没有尝试过分布式爬虫,这次就是一个分布式爬虫的初体验。所谓分布式爬虫,就是要用多台电脑同时爬取数据,相比于单机爬虫,分布式爬虫的爬取速度更快,也能更好地应对IP的检测。本文介绍的是利用Redis数据库实现的分布式爬虫,Redis是一种常用的菲关系型数据库,常用数据类型包括String、Hash、Set、List和Sorted Set,重要的是Redis支持主从复制,主机能将数据同步到从机,也就能够实现读写分离。因此我们可以利用Redis的特性,借助requests模块发送请求,再解析网页和提取数据,实现一个简单的分布式爬虫。 二、基本环境   Python版本:Python3   Redis版本:5.0   IDE: Pycharm 三、环境配置 由于Windows下的安装配置比较简单,所以这里只说Linux环境下安装和配置Redis(以Ubuntu为例)。 1.安装Redis 1)apt安装: $ sudo apt-get install redis-server 2)编译安装: $ wget http : / / download .redis .io / releases / redis - 5.0.0.tar.gz $ tar - xzvf redis - 5.0.0.tar.gz $ cd redis - 5.0.0 $

机器学习实战-朴素贝叶斯

邮差的信 提交于 2020-11-14 03:59:11
数据集参考自https://blog.csdn.net/c406495762/article/details/77341116 朴素贝叶斯 :首先,何为朴素?朴素要求的是 条件特征之间相互独立 。我们都知道大名鼎鼎的贝叶斯公式,其实朴素贝叶斯的思想很简单。就是通过计算属于某一类别的后验概率,然后比较大小,哪一类的概率大,那么就将它划分为哪一类。。。 由上述公式可知,我们先验概率P(A)很容易求得,我们重点在与求条件概率。由于条件特征之间相互独立,于是可以拆分成累乘的形式。在代码实现中,我们一般不会去求P(B),因为分母都是一样的,我们只关注类别概率的大小! 将代码记录如下,方便以后查看。 import numpy as np import pandas as pd def getDataSet(): postingList =[[ ' my ' , ' dog ' , ' has ' , ' flea ' , ' problems ' , ' help ' , ' please ' ], [ ' maybe ' , ' not ' , ' take ' , ' him ' , ' to ' , ' dog ' , ' park ' , ' stupid ' ], [ ' my ' , ' dalmation ' , ' is ' , ' so ' , ' cute ' , ' I

Python机器学习笔记:朴素贝叶斯算法

↘锁芯ラ 提交于 2020-11-14 03:58:51
  朴素贝叶斯是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。对于大多数的分类算法,在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数,要么是条件分布。但是朴素贝叶斯却是生成方法,该算法原理简单,也易于实现。 1,基本概念   朴素贝叶斯 :贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类时贝叶斯分类中最简单,也是最常见的一种分类方法。   贝叶斯公式 : (X:特征向量, Y:类别)   先验概率P(X) :先验概率是指根据以往经验和分析得到的概率。   后验概率P(Y|X) :事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,后验分布P(Y|X)表示事件X已经发生的前提下,事件Y发生的概率,叫做事件X发生下事件Y的条件概率。   后验概率P(X|Y) :在已知Y发生后X的条件概率,也由于知道Y的取值而被称为X的后验概率。   朴素 :朴素贝叶斯算法是假设各个特征之间相互独立,也是朴素这词的意思那么贝叶斯公式中的P(X|Y)可写成:   朴素贝叶斯公式 : 2,贝叶斯算法简介   NaiveBayes算法,又称朴素贝叶斯算法。朴素:特征条件独立;贝叶斯

006. 文本处理工具 P2 (常见文本处理工具)

北城以北 提交于 2020-11-13 09:53:34
1 常见文本处理工具 cat -E:显示行结束符$ -A:显示所有控制符 -n:对显示出的每一行进行编号 -b:非空行编号 -s:压缩连续的空行成一行 [root@localhost ~]# cat a -A $ localhost.localdomain$ a b c$ a ^I^I d$ [root@localhost ~]# cat a -E $ localhost.localdomain$ a b c$ a d$ [root@localhost ~]# cat a -n 1 2 localhost.localdomain 3 a b c 4 a d [root@localhost ~]# cat a -b 1 localhost.localdomain 2 a b c 3 a d 4 c ### nl 相当于cat -b [root@localhost ~]# nl b 1 a 2 b 3 c 4 b 5 e 6 f ### tac 逆向显示文本内容 [root@localhost ~]# tac b f e b c b a ### rev 将同一行的内容逆向显示 [root@localhost ~]# echo {1..10} | rev 01 9 8 7 6 5 4 3 2 1 ### hexdump 查看非文本文件内容 [root@localhost ~]#

深度学习文字识别

我只是一个虾纸丫 提交于 2020-11-13 09:30:30
Blog : https://blog.csdn.net/implok/article/details/95041472 步骤 : 文字识别是AI的一个重要应用场景,文字识别过程一般由图像输入、预处理、文本检测、文本识别、结果输出等环节组成。 分类 :文字识别可根据待识别的文字特点采用不同的识别方法,一般分为定长文字、不定长文字两大类别。 定长文字(例如 手写数字识别 、 验证码 ),由于字符数量固定,采用的网络结构相对简单,识别也比较容易; 不定长文字(例如印刷文字、广告牌文字等),由于字符数量是不固定的,因此需要采用比较复杂的网络结构和后处理环节,识别也具有一定的难度。 一、定长文字识别 定长文字的识别相对简单,应用场景也比较局限,最典型的场景就是验证码的识别。由于字符数量是已知的、固定的,因此,网络结构比较简单,一般构建3层卷积层,2层全连接层便能满足“定长文字”的识别。 手写数字识别 MNIST是一个经典的手写数字数据集,来自美国国家标准与技术研究所,由不同人手写的0至9的数字构成,由60000个训练样本集和10000个测试样本集构成,每个样本的尺寸为28x28,以二进制格式存储,如下图所示: MNIST手写数字识别模型的主要任务是:输入一张手写数字的图像,然后识别图像中手写的是哪个数字。 该模型的目标明确、任务简单,数据集规范、统一,数据量大小适中

Scrapy入门实例教程

浪尽此生 提交于 2020-11-13 05:53:46
Scrapy 入门- Scrapy简介 Scrapy框架介绍 Scrapy 是 由 Python 语言开发的一个快速、高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。 Scrapy 用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy 吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如 BaseSpider 、 sitemap 爬虫等,最新版本又提供了 web2.0 爬虫的支持 Scrapy 框架的运行原理: Scrapy Engine : 负责组件之间数据的流转,当某个动作发生时触发事件。 Scheduler : 接收 requests ,并把他们入队,以便后续的调度。 Spiders : 用户编写的可定制化的部分,负责解析 response ,产生 items 和 URL 。 Item Pipeline : 负责处理 item ,典型的用途:清洗、验证、持久化。 Downloadermiddlewares : 位于引擎和下载器之间的一个钩子,处理传送到下载器的 requests 和传送到引擎的 response( 若需要在 Requests 到达 Downloader 之前或者是 responses 到达 spiders 之前做一些预处理,可以使用该中间件来完成 ) 。