作业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的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...
随机推荐
- Alpha冲刺! Day8 - 砍柴
Alpha冲刺! Day8 - 砍柴 今日已完成 晨瑶:写了部分gitkraken团队协作教程:讨论关于继承baseActivity因为需要参数无法通过override去实现函数,并且initData ...
- python框架面试题联系
1.对 MVC,MVT 解读的理解? M:Model,模型,和数据库进行交互 V:View,视图,负责产生 Html 页面 C:Controller,控制器,接收请求,进行处理,与 M 和 V 进行交 ...
- Oracle导入程序Imp的使用详解
Oracle的导入实用程序(Import utility)允许从数据库提取数据,并且将数据写入操作系统文件.imp使用的基本格式:imp[username[/password[@service]]], ...
- python 之 递归
终于来到了这里,这是一座山,山那边都是神仙 定义:在一个函数里调用函数本身 最好的例子就是,求阶乘 def factorial(n): if n == 1: return 1 elif n > ...
- Python open 读和写
# -*- coding: utf-8 -*- # 测试文件名为: # text.txt # 测试文件内容为: # abcdefg # 每次操作后将文件复原 # r # 以只读方式打开文件,文件不可写 ...
- 转载 使用axis2构建webservice
axis2是可以实现webservice的一个插件,使用这个插件可以发布webservice 1:可以使用这个插件来发布webservice,可以看网址:http://clq9761.iteye.co ...
- c# 根据当前时间获取,本周,本月,本季度,月初,月末,各个时间段
DateTime dt = DateTime.Now; //当前时间 DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") //24小时制 ...
- String.valueOf()方法注意
String.valueOf();可以将 int char long float double boolean char[] 转化为字符串输出,但不是这几个类型时候,则会使用Object类型接收,底层 ...
- Objective-C 单例实现
Objective-C中用的最多的设计模式就是单例,它最常见的实现如下: + (WPXXService *)sharedInstance { static WPXXService *g_service ...
- android客服端+eps8266+单片机+路由器之远程控制系统
用android客服端+eps8266+单片机+路由器做了一个远程控制的系统,因为自己是在实验室里,所以把实验室的门,灯做成了远程控制的. 控制距离有多远------只能说很远很远,只要你手机能上网的 ...