作业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的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...
随机推荐
- 阿里八八β阶段Scrum(2/5)
今日进度 黄梅玲:尝试修复日程界面的不可点击问题 李嘉群:修改数据库,增加写入识别功能临时文本存入的项 张岳:信息抽取算法的编写 叶文滔:尝试侧边栏的信息调用,但因为侧边栏不是单独的活动,调用碰到了困 ...
- 写给spring版本的那些事儿
1.远程调用rmi协议 Exception in thread "main" java.rmi.UnmarshalException: error unmarshalling re ...
- jquery计算时间差(天、时、分、秒)并使用定时器实时获取
类似网站抢购需求,会有个时间倒计时的展示(天.时.分.秒) 要拿到最终时间与当前时间对比,算出时间差并用定时器以秒的方式执行 实现代码: $(document).ready(function(){ r ...
- C#的static
1.static意思是静态,可以修饰类.字段.属性.方法2.标记为static的就不用创建实例对象调用了,可以通过类名直接点出来3.static三种用法:4.用于变量前,表示每次重新使用该变量所在方法 ...
- Django之权限管理
Django权限管理之初步完整版 项目背景:这是一个权限管理系统(给一些角色和他们的权限指URL和页面可以删除的按钮比如:增删改查) 使用到了中间件,和初始化权限,使用了admin的后台管理系统. 我 ...
- R环境搭建
R下载安装 https://mirrors.tuna.tsinghua.edu.cn/CRAN/ RStudio下载安装 https://www.rstudio.com/products/rstudi ...
- trace文件解读
*********************************************************************示例:全表扫描的10046文件解读************** ...
- 基于php实现QQ授权登陆
第一步: 首先登陆QQ互联首页https://connect.qq.com/进行个人/企业认证.大概审核时间在一周左右. 认证通过之后创建应用: 这里主要用到应用的APP ID 和 APP Key ...
- typeof与instanceof的区别是什么?
在javascript中,判断一个变量的类型可以用typeof (1) 数字类型.typeof返回的值是number.比如说:typeof(1),返回值是number (2) 字符串类型,typeof ...
- matlab padarray函数
1 padarray功能:填充图像或填充数组.用法:B = padarray(A,padsize,padval,direction) A为输入图像,B为填充后的图像, padsize给出了给 ...