Python语言相关正则定义及其实现

2022-03-31 语言学习

Python语言标识符及运算符的正则定义 0、题目重现: 写出Python语言标识符、运算符及标点符号的正则定义,画出状态转换图并用程序实现 一、Python标识符的常见规范 命名规则 由26个英文字母大小写、0-9或下划线组成 数字不可以开头,如:int 3ab = 1; // 错误 不可以使用关键字和保留字,但能包含关鍵字和保留字. 严格区分大小,长度无限制. 如 int totalNum = 10; int n = 90; 不能包含空格,如 int a b = 90; // 错误 命名规范 包名 : aaa.bbb.ccc // 如com.ctgu.cn 类名、接口名 :XxxYyyZzz 变量名、方法名 : xxxYyyZzz 常量名: XXX YYY ZZZ …

阅读全文 →

Python统计文章单词数量

2021-09-25 开发

最近收到软件工程课程老师的一个实验作业,其中涉及到了一部分NLP的内容,这里捡出来一些整理下来。 需求 输出单个文件中的前 N 个最常出现的英语单词。 作用:一个用于统计文本文件中的英语单词出现频率的控制台程序 单词:以英文字母开头,由英文字母和字母数字符号组成的字符串视为一个单词。单词 以分隔符分割且不区分大小写。在输出时,所有单词都用小写字符表示。 思路 统计个数优先考虑字典。先把文章里的标点和多余空格处理掉,然后把整篇文章处理成一个单词列表,再去count这个列表里的元素就可以了。最后做一下排序。 代码 #-*- coding: UTF-8 -*- # 需求:输出单个文件中的前 N 个最常出现的英语单词。 # 获取文本内容,分隔单词 def get_words(filename): with open(filename) as f: content = f.read() # 处理标点符号 content = content.replace(",", "") content = content.replace(".", "") content = content.replace("!", "") content = …

阅读全文 →

Python3实现埃筛求素数

2020-10-24 语言学习

最近在精进Python,发现Python的语言特性使它能简洁优雅的描述埃筛求素数的过程,所以写篇博做个记录。 原理 更详细的内容可以参考我的这篇博文,这里只做一个简略的介绍。 筛法,顾名思义,用数去筛选。具体流程是这样的: 对于所有待选整数:2,3,4,5,6,7,8,9,10.....选择第一个素数2,筛掉它所有的倍数得到: 2,3,5,7,9,11,13,15.....接着用下一个数3,根据步骤2可以知道这“下一个数一定是素数”,用它继续筛掉自己的倍数:2,3,5,7,11,13,17.....重复这个步骤筛下去,剩下的就全是素数了 具体实现 完整代码 ```python # 构造一个奇数生成器 def _odd_iter(): n = 1 while True: n += 2 yield n # 构造筛选器 def _not_divsible(n): return lambda x : x % n > 0 # 筛法素数生成器 def _find_prime(): yield 2 # 返回第一个素数"2" it …

阅读全文 →