一、优缺点分析

1、缺点:

① 数学问题的生成中只考虑了消除乘除法加括号的无效情况(例如3*(4+5)或(6*5)/2这样的计算),但没有去掉加减法加括号的无效情况(例如(4+(7+8))或(3-(2-1)));

② 项目代码中变量的命名没有严格安装规范来,有些命名有点相似且无特定含义,给阅读代码的过程中造成了不小的困难,不方便理解,看起来会有些混乱。

2、 优点

① 代码是用python写的,能够熟练运用各种循环判断语句和列表,并且其中用到了许多便利简洁的函数,比如getcwd()获取文件地址、lstrip()截掉左边字符串、re.match()通过正则表达式进行匹配等等;

② 一对括号的插入,是在已知固定操作数个数的情况下,在包含所有括号对可能位置的列表中,random挑选能够插入的位置,因此得出来的数学题具有一定随机性,这个算法思路很独特;

③ 代码中对于中文字符的处理非常简便,值得参考,主要是要记得保存基本信息txt为utf-8的格式,调用open函数时也encoding=“utf-8”方式打开,然后就可以直接进行处理了;

④ 初高中的数学题要求插入根号平方和三角函数,因为random.random()范围是[0,1),所以将其与小于1的数(比如0.3、0.5)做比较,以此来达到随机的目的;

二、具体功能实现

1、InputInformation():录入附表中基本信息,用read函数读取txt文件,并根据换行符分割成列表:

2、LandAccount():登入个人账户,首先通过find判断输入格式是否正确,接着在列表中循环,看是否匹配到正确的账户名和密码:

3、GenerateQuestions():随机生成小初高的数学题,用了random函数实现随机化,并且还要去除掉括号的无效情况;

4、OutputFiles():生成文件夹和数学题txt,用datetime得到当前时间并格式化转为字符串,之后生成相应文件:

5、OldFiles():用于查重,将过去同一账户同一学历生成的题目保存到一个字符串中,并在生成每个数学题时通过find来比较是否有相同的题目:

三、   个人总结

我使用的是C++进行书写,在写完后才发现用这种语言写的童鞋比较少,后来想想发现C++书写的代码量较大,书写不易;在当今计算机软件开发的行业中多数使用python进行敏捷开发;而且python语言独立于平台性质,同时开发周期短,程序员易于上手;同时底层封装性强,代码更加简洁;

原来python如此神奇的更多相关文章

  1. 【转】Python的神奇方法指南

    [转]Python的神奇方法指南 有关Python内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Picklin ...

  2. Python 的神奇方法指南

    简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling). 你可以把它当作一 ...

  3. Python的神奇方法指南

    参考:http://article.yeeyan.org/view/311527/287706

  4. Python漫谈-比较运算符和类的神奇方法

    昨天遇到一个Python问题,今天好奇试了一下 >>> a = {1:23,'ab':56} >>> b = {2:22,'ab':57} >>> ...

  5. 支付宝AR红包引出Python中的PIL小试

    这两天支付宝AR红包火了,周围的同学全在玩.可是我一直在想这个原理是什么?通过请教大神和思考,知道了它有两个限定条件:GPS地理位置和图片的识别.所以,只要我们有了这两个限定条件,就不难进行该红包的破 ...

  6. PAT 1038 体验Python之美

    1038. Recover the Smallest Number (30) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...

  7. python做量化交易干货分享

    http://www.newsmth.NET/nForum/#!article/Python/128763 最近程序化交易很热,量化也是我很感兴趣的一块. 国内量化交易的平台有几家,我个人比较喜欢用的 ...

  8. 为什么Python编程被国家教育如此重视?请开始你的表演!

    高考新宠 在高考更改之前,提起编程,人们可能更多的会想起c语言之类的. 然而,高考更始之后,Python这门编程说话一夜之间传进了千家万户. 现实上,在IEEE(美国电气电子工程师学会出书的旗舰杂志) ...

  9. 从0开始的Python学习002python的数据类型

    在创建变量的时候不用声明数据类型 # 创建变量 a = 10 # 打印变量值 print(a) 结果如下: 这种感觉和Java有很大的不同,感觉python很神奇,数据的类型是python自己决定的. ...

随机推荐

  1. python入门(三)列表、元组、range()、字典

    列表(list) 列表简介:列表(list)是处理一组有序项目的数据结构.用方括号[]表示.可以进行添加,删除,替换,搜索操作.是可变的数据类型.列表可以嵌套和支持索引. name=[12," ...

  2. Asp.net MVC 集成AD域认证

    1.首先WebApi 应用下Web.config要配置域认证服务器节点,如下 <!--LDAP地址 用于项目AD系统账号密码验证--> <!--0:关闭域认证:1:开启域认证--&g ...

  3. GIS基础知识 - 坐标系、投影、EPSG:4326、EPSG:3857

    最近接手一个GIS项目,需要用到 PostGIS,GeoServer,OpenLayers 等工具组件,遇到一堆地理信息相关的术语名词,在这里做一个总结. 1. 大地测量学 (Geodesy) 大地测 ...

  4. Mongodb操作1-linux安装数据库

    1.下载mongodb 百度云盘连接 :链接:https://pan.baidu.com/s/1b-hTS0XHQKpatecFoumLxw  提取码:z9ax 并送上可视化工具:链接:https:/ ...

  5. HZNU Training 2 for Zhejiang Provincial Collegiate Programming Contest 2019

    赛后总结: T:今天下午参加了答辩比赛,没有给予队友很大的帮助.远程做题的时候发现队友在H上遇到了挫折,然后我就和她们说我看H吧,她们就开始做了另外两道题.今天一人一道题.最后我们在研究一道dp的时候 ...

  6. poj 1177 Picture(线段树周长并)

    题目链接:http://poj.org/problem?id=1177 题意:给你n个矩形问你重叠后外边缘总共多长. 周长并与面积并很像只不过是处理的时候是   增加的周长=abs(上一次的线段的长度 ...

  7. PHP. 02®. Ajax异步处理、常见的响应状态、XMLHttpRequest对象及API、ajax的get/post方法、

    异步对象 a)创建异步对象 b)设置请求的url等参数 c)  发送请求 d)注册时间 e)在注册的事件中获取返回的内容并修改页面显示的内容 布尔类型不能直接用echo输出 常见的响应状态 Ajax概 ...

  8. 从原理层面掌握@InitBinder的使用【享学Spring MVC】

    每篇一句 大魔王张怡宁:女儿,这堆金牌你拿去玩吧,但我的银牌不能给你玩.你要想玩银牌就去找你王浩叔叔吧,他那银牌多 前言 为了讲述好Spring MVC最为复杂的数据绑定这块,我前面可谓是做足了功课, ...

  9. STA——multicycle path

    之前去地平线面试的时候被问到了multicycle path的一点问题,其实这个问题我应该知道,看过<Constraining Designs for Synthesis and Timing  ...

  10. postman--请求以及变量设置的实例练习

    我们可以在2个地方添加需要执行的js脚本,一个是Pre-request Script,还有一个tests,我们先看请求之前的 1 在请求被发送到服务器之前:就是在“Pre-request Script ...