一、优缺点分析

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. js获取Cookie,获取url参数

    function getCookie(name) { var strCookie = document.cookie; var arrCookie = strCookie.split("; ...

  2. Swifter.Json 可能是 .Net 平台迄今为止性能最佳的 Json 序列化库【开源】

    Json 简介 Json (JavaScript Object Notation) 是一种轻量级的数据交换格式.它作为目前最欢迎的数据交换格式,也是各大开源贡献者的必争之地,如:阿里爸爸的 fastj ...

  3. Oracle 优化器_访问数据的方法_单表

    Oracle 在选择执行计划的时候,优化器要决定用什么方法去访问存储在数据文件中的数据.我们从数据文件中查询到相关记录,有两种方法可以实现:1.直接访问表记录所在位置.2.访问索引,拿到索引中对应的r ...

  4. 逆向破解之160个CrackMe —— 025

    CrackMe —— 025 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  5. ImportError: cannot import name '_obtain_input_shape' from 'keras.applications.imagenet_utils'

    报错 Using TensorFlow backend. Traceback (most recent call last): File "D:/PyCharm 5.0.3/WorkSpac ...

  6. Python编程习惯

  7. 2019NC#8

    题号 标题 已通过代码 题解/讨论 通过率 团队的状态 A All-one Matrices 点击查看 单调栈+前缀和 326/2017  通过 B Beauty Values 点击查看 进入讨论 8 ...

  8. HDU 4322Candy 最大费用最大流

    由于被小孩子不喜欢的糖果的对小孩产生的效力是一样的,所以我们在网络流的时候先不考虑. 1 - 源点0到1~N个糖果,容量为1,费用为02 - 根据like数组,like[i][j] == 1时在糖果j ...

  9. Codeforces 832 D Misha, Grisha and Underground

    Misha, Grisha and Underground 题意:Misha 和 Grisha 是2个很喜欢恶作剧的孩子, 每天早上 Misha 会从地铁站 s 通过最短的路到达地铁站 f, 并且在每 ...

  10. Good Inflation SPOJ - GOODG 李超树

    题目传送门 题意:刚开始有一个气球体积为空,现在有n个充气点,从1->n遍历这n充气点,每个充气点有vi,di,vi为走到这个充气点之后可以为气球充气vi的体积,di为选择了在这个点充气的时候, ...