题目

从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:

除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24

运算符为 +, −, ×, ÷

并且要求能处理用户的输入,并判断对错,打分统计正确率。

要求能处理用户输入的真分数, 如 1/2, 5/12 等

使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目

Myapp.exe -n 10

需求分析

1.需要生成随机数

2.循环结构生成相应数目的题目

3.判断题目的对错,并统计正确率

4.使用python2.7实现

程序

  1. # coding=gbk
  2. import random
  3. import fractions
  4. import string
  5. i=0
  6. result=0
  7. temp=0
  8. print"请输入想要生成的题目数量:"
  9. n=input()
  10. while i<n:
  11. first_num=random.randint(1,10)
  12. second_num=random.randint(1,10)
  13. third_num=random.randint(1,10)
  14. fourth_num=random.randint(1,10)
  15. a = random.choice("+-*/")
  16. if second_num==1:
  17. x=first_num
  18. else:
  19. x=fractions.Fraction(first_num,second_num)
  20. if fourth_num==1:
  21. y=second_num
  22. else:
  23. assert isinstance(fourth_num, object)
  24. y=fractions.Fraction(second_num,fourth_num)
  25. if a=="+":
  26. result=x+y
  27. faker=str(result)
  28. print x,a,y,"="
  29. elif a=="-":
  30. result=x-y
  31. faker=str(result) #生成字符型
  32. print x,a,y,"="
  33. elif a=="*":
  34. result=x*y
  35. faker=str(result)
  36. print x,"x",y,"="
  37. elif a=="/":
  38. result=x/y
  39. faker=str(result)
  40. print x,"÷",y,"="
  41. answer=raw_input()
  42. if faker ==answer: # 正确
  43. temp=temp+1
  44. print "right!"
  45. else: # 错误
  46. print 'error. the right answer is %s' % result
  47. i += 1
  48. print "您答对%d题" % temp

测试

自评

可以实现基本的分数运算,python这门语言也是刚开始学习,不足之处还有很多,请多多指教!

psp

代码地址(coding)

https://coding.net/u/run-in-way/p/homework/git/blob/master/sizeyunsuan.py

第一周作业.四则运算生成器(基于python)的更多相关文章

  1. 2018-2019-1 20189221《Linux内核原理与分析》第一周作业

    Linux内核原理与分析 - 第一周作业 实验1 Linux系统简介 Linux历史 1991 年 10 月,Linus Torvalds想在自己的电脑上运行UNIX,可是 UNIX 的商业版本非常昂 ...

  2. Java第一周作业

    Java第一周作业 本周作业: 参考<<教材学习指导(http://www.cnblogs.com/rocedu/p/7911138.html)) 学习第一章视频 参考<<使用 ...

  3. C语言--第一周作业评分和总结(5班)

    作业链接:https://egdu.cnblogs.com/campus/hljkj/CS2017-5/homework/963 一.评分要求 * 要求1 (5分):博客中给出安装软件的截图(得分点1 ...

  4. C语言-第一周作业

    要求1: 请在你的PC或者移动设备上安装词典,该词典工具能对计算机术语进行翻译.需要在你的博客中给出安装软件的截图,请确保阅读者能从截图判断出你的被安装的设备是PC或者移动设备.(5经验值) 要求2: ...

  5. 2017-2018-1 Java小组-1623 第一周作业

    2017-2018-1 Java小组-1623 第一周作业 <构建之法>学习笔记及团队成员介绍 1. 学习内容 概论 个人技术和流程 软件工程师的成长 两人合作 团队和流程 敏捷流程 实战 ...

  6. 2019-2020-1 20199303 《Linux内核原理分析》 第一周作业

    2019-2020-1 20199303 <Linux内核原理分析> 第一周作业 1. 环境准备 在众多的Linux发行版中,Ubuntu,小红帽还有类Unix系统的BSD系统,我选择了目 ...

  7. C语言1-2019秋第一周作业

    第一周作业 1.你对软件工程专业或者计算机科学与技术专业了解是怎样? 软件技术专业是计算机科学的一个分支,和软件科学与技术专业相比较,软件技术专业的侧重点在开发和技术的实际应用,而对软件开发的理论要求 ...

  8. 20189215《Linux内核原理与分析》第一周作业

    实验1 Linux系统简介 本节主要学习了 Linux 的历史,Linux 与 Windows 的区别等入门知识.通过学习,我明确了目的,是要用 Linux 来做程序开发.搭建服务器等:并且非常接受不 ...

  9. 初入计算机专业,学习c语言的第一周作业问答

    2019年9月17日下午3点30,我来到了1117教室准备上我进入大学的第一堂计算机专业课,并需要完成以下作业. 2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样? 我所了解的计算机就是一台 ...

随机推荐

  1. PAT (Basic Level) Practise (中文) 1016. 部分A+B (15)

    1016. 部分A+B (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 正整数A的"DA(为1 ...

  2. macOS下加载动态库dylib报"code signature invalid"错误的解决办法

    一.现象描述 在macOS上搞开发也有一段时间了,也积攒了一定的经验.然而,今天在替换工程中的一个动态库时还是碰到了一个问题.原来工程中用的是一个静态库,调试时发现有问题就把它替换成了动态库.这本来没 ...

  3. 正则表达式(即:匹配模式Pattern)

    通过学习<正则表达式-Regular-Expression-Tutorial.pdf>这份文档,对正则表达式有了很好的了解,原因只有1个--这份文档写得太好了. 它的下载地址是:http: ...

  4. Selenium2 (python)

    包名:selenium 支持浏览器:Firefox,InternetExplorerDriver,OperaDriver,Chrome(要使用一种浏览器应下载相应的driver驱动) 一.基本命令 d ...

  5. ASP.NET MVC 创建 Area 以及使用

    此博客全乘抄袭,只为以后自己能再次用到 参考链接 http://www.cnblogs.com/willick/p/3331519.html ASP.NET MVC允许使用 Area(区域)来组织We ...

  6. 第2天:HTML常用标签

    今天学完主要对所学知识点进行了整理. 一.超链接ahref:www.baidu.com(跳转页面):id名(锚点跳到相应div位置):01.rar(压缩包) target:_blank(新窗口打开): ...

  7. eval & exec(绕过长度限制思路学习)

    eval & exec知识点记录--原文章phithon,只是记录一下我自己的学习过程. 1.eval & exec if(strlen($param)<17 && ...

  8. 自写JS分页工具【基于JQ】

    好久没有来逛园子,也好久没有更新博客,就像沉睡已久的人忽然被叫醒,忽然就被园友的回复惊醒了.园友提出了关于我之前一篇文章的疑问--可那已经是半年以前的博客了,加上我一直觉得分享给大家的应该是我最新的思 ...

  9. MySql分库分表总结(转)

    为什么要分库分表 可以用说用到MySQL的地方,只要数据量一大, 马上就会遇到一个问题,要分库分表. 这里引用一个问题为什么要分库分表呢?MySQL处理不了大的表吗? 其实是可以处理的大表的.我所经历 ...

  10. 一起来学linux:用户与用户组

    linux的文件属性以及管理方法和windows是完全不同的,所以学习linux首先来了解下用户以及文件权限是怎么回事 p { margin-bottom: 0.25cm; line-height: ...