作业1+2.四则运算(改进后完整版,用python写的)_064121陶源
概述:
用一个星期加上五一的三天假期自学了python,在Mac系统上重新写出了四则运算的程序,编译器是PyCharm,相当于完成了作业2.d)"选一个你从来没有学过的编程语言,试一试实现基本功能"这个方向。
用python写的这个程序能实现分数的加减程序,实现带加减乘除和括号的计算题,实现随机生成100道简单计算题,比之前用C++写的程序功能更加完善,更加简洁!
关键点:
调用两个模板。
1)类似C++和Java,格式是 对象.方法(),Fraction()方法,能直接表示分数。
2)random.randint(a,b)用来生成a-b范围内的随机整数。
p=["+","-","*","/"];
random.choice(p)
p表示字符数组,random.choice(p)表示从数组p中随机抽取字符!
过程:
1)

这段代码的功能是实现两个分数的加减乘除,并且实现用户输入并判断正误,最后统计正确和错误的个数!
用x,y,a,b分别表示第一个分数的分子,第一个分数的分母,第二个分数的分子,第二个分数的分母!
m,n表示用户输入的答案,m是分子,n是分母,然后用if else语句进行判断,得出正误。
h,i是计数器,分别记录正确和错误的个数,控制台运行结果如下:

分别输入了1/2和1/3,前三个运算正确,显示"Congratulations!! your answer is right!"
第四个运算错误,显示"The right answer of '(x/y)/(a/b) is: 3/2'"
最后统计出正确答案个数为3,错误答案个数为1.
2)-------------------------------------------------------------------------------------------------------------------------------

产生10个随机变量,范围从1到20,分别用a1-a10表示。
然后生成3个不同类型的计算题,并让用户输入答案,机器判断对错,控制台结果如下:

问题1的答案是64,我回答正确了。
问题2和3的答案分别是1616/741,-4039/78,我回答错误,没仔细去算,比较复杂,随便填了两个答案!
3)-----------------------------------------------------------------------------------------------------------------

最后一个环节是Level 3,随机生成100道计算题。
先用数组存放加减乘除符号,再在print中以 随机数_符号_随机数的方式表示算式。
在算式外加while循环,计数器count初始值设为1,循环100次,生成100道式子,结果如下:


一共有100个Question,数字随机,运算符随机。
总结:
1)这个程序是我自己写的,由于PyCharm编译器不能再字符和字符串中出现中文,注释也不能用中文,所以只能在博客中打字注释,功能上比第一次写的完善了很多!这也得益于python是解释性语言,语法非常简单:比如两个分数的四则运算这个功能,用C++需要用到operation+、重载等功能,代码行数近100行,但用python只需9行就能搞定!
2)这个程序有个缺陷:您在ppt上的要求是生成的100道计算题中不能有重复,比如(1+2)和(2+1)就是重复的题目,而我用python编写时并没有实现这个细节,毕竟只用1星期看书学,有很多细节没有学到位,现在仍在思考,如果5月7号之前想出来一定修改发到博客!
3)通过这一个星期的python自学,收获颇多,尤其被它的简洁语法所震撼,这个程序我相信还能用更简洁的方式表示。
和C++、C相比,python更简洁,不需要考虑底层的因素,比如指针、内存的占用释放等复杂的东西,不过反过来说,在运行效率上,python比不上C、C++。但想想,在普通的马路上,出租车和F1赛车一起行驶,速度上并不会有太大的差别,二者的差距只有到赛道上才能体现。对于我们学生来说,很少会编写超大程序,所以python很适合作为入门级编程语言,很容易上手!!
4)cnblogs貌似不能上传文件,python的代码我会在5月7号前跟其它作业一起打包发到范老师QQ/邮箱中,您可以运行试下!
作业1+2.四则运算(改进后完整版,用python写的)_064121陶源的更多相关文章
- 软件工程课堂作业(二)续——升级完整版随机产生四则运算题目(C++)
一.设计思想: 1.根据题目新设要求,我将它们分为两类:一类是用户输入数目,根据这个数目改变一系列后续问题:另一类是用户输入0或1,分情况解决问题. 2.针对这两类要求,具体设计思路已在上篇博文中写出 ...
- 被女朋友三番五次拉黑后,我用 Python 写了个“舔狗”必备神器
在一个阳光明媚的周日,我打开窗户呼吸了一口新鲜空气.阳光灿烂,岁月静好,又是一个约女朋友出去爬山吃饭看电影的好日子. 想到女朋友的大眼睛,我脸上不禁洋溢起了幸福的微笑.打开微信,给女朋友发出去一个美好 ...
- Swoole入门到实战 打造高性能 赛事直播平台(完整版)
Thinkphp+Swoole入门到实战打造高性能赛事直播平台 第1章 课程介绍 欢迎大家来到swoole的课程!本章主要是介绍了swoole的一些特性,以及使用场景,并且分享了swoole在其他公司 ...
- Thinkphp5.0 仿百度糯米 开发多商家 电商平台(完整版)
目录第1章 课程简介第2章 需求分析第3章 快速掌握thinkphp5第4章 任性的TP5模块第5章 生活服务分类管理模块第6章 百度地图应用封装第7章 打造属于TP5自己的发送邮件服务第8章 商户模 ...
- 结对作业——随机生成四则运算(Core 第7组)
结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...
- Linux学习总结(1)——Linux命令大全完整版
Linux命令大全完整版 目 录I 1. linux系统管理命令1 adduser1 chfn(change finger information)1 chsh(change shell)1 d ...
- AI工程师职业规划和学习路线完整版
AI工程师职业规划和学习路线完整版 如何成为一名机器学习算法工程师 成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能 力,这些能力中的每一项掌握起来都需要足够的努力 ...
- 《死磕 Elasticsearch 方法论》:普通程序员高效精进的 10 大狠招!(完整版)
原文:<死磕 Elasticsearch 方法论>:普通程序员高效精进的 10 大狠招!(完整版) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链 ...
- 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版
背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...
随机推荐
- Tensorflow张量
张量常规解释 张量(tensor)理论是数学的一个分支学科,在力学中有重要应用.张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具. ...
- Arduino IDE for ESP8266 教程(一) 局域网 网页查看数据 不控制
淘宝:https://detail.tmall.com/item.htm?id=536504922008&spm=a1z09.2.0.0.5e160c66c76b3g&_u=e1qf7 ...
- oracle 索引扫描类型的分类与构造
1. INDEX RANGE SCAN--请记住这个INDEX RANGE SCAN扫描方式drop table t purge;create table t as select * from dba ...
- MP实战系列(一)之入门框架搭建和使用
mybatis plus官网:https://github.com/baomidou/mybatis-plus 上面有对应的实际例子,直接导入即可用. mybatis plus官方的怎么介绍,我就不在 ...
- sql截取日期/时间的单独部分,比如年、月、日、小时、分钟等等
可以使用EXTRACT() 函数.(oracle和mysql都有该函数) 语法: EXTRACT(unit FROM date) date 参数是合法的日期表达式.unit 参数可以是下列的值:YEA ...
- xpath 的使用
如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10520271.html 有问题请在博客下留言或加作者微信:tinghai87605 ...
- Android学习之基础知识七—碎片的使用
碎片(Fragment)是一种可以嵌入在活动中的UI片断,它能让程序更加合理和充分地利用大屏幕的空间,它与活动相似,可以简单的理解为一个迷你型的活动,它也有自己的生命周期.碎片在平板的应用非常广泛. ...
- Omi框架学习之旅 - 插件机制之omi-transform及原理说明
给omi-transform插件做个笔记,使用起来也很爽. transform.js这个库,一直想写一篇帖子的,可是,数学不好,三维矩阵和二位矩阵理解的不好,所以迟迟没写了, 这也是一个神库,反正我很 ...
- 【webstorm】注册码 更新笔记
20190225 1.修改hosts文件,windows的hosts文件路径是 C:\ Windows \ System32 \ drivers \ etc \ hosts 0.0.0.0 acco ...
- 【dataX】阿里开源ETL工具——dataX简单上手
一.概述 1.是什么? DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase. ...