四则运算程序

一、信息

二. 题目要求

写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:

1

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

2

程序要求能处理用户的输入,判断对错,累积分数

3

程序支持可以由用户自行选择加、减、乘、除运算

4

使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目

三、代码

import random # 生成随机数

from fractions import Fraction # 分数运算

list_subjects=[] # 对题目信息储存

list_answers =[] # 对答案信息储存

#主函数

def main():

display() #调用信息界面

n = int(input("共有题目数量为:"))

print("**************")

choose_rule = int(input("在1-5中选择需要的运算:"))

for i in range(n):

if choose_rule == 1:

div()

elif choose_rule == 2:

mul()

elif choose_rule == 3:

cut()

elif choose_rule == 4:

add()

elif choose_rule == 5:

frac()

else:

print("输入有误,请选择(1-5)!")

break

count = judge()

print("总共{}分,共答对{}分".format(n,count))

#信息界面

def display():

print("四则运算开始!!")

print(" 1. 除法运算(÷)")

print(" 2. 乘法运算(x)")

print(" 3. 减法运算(-)")

print(" 4. 加法运算(+)")

print(" 5. 真分数运算(随机算法)")

#加法运算

def add():

num1 = random.randint(1, 100)

num2 = random.randint(1, 100)

list_subjects.append(str(num1) + '+' + str(num2) + '=')

list_answers.append(num1 + num2)

#减法运算

def cut():

num1 = random.randint(1, 100)

num2 = random.randint(1, 100)

if num1 < num2:

num1, num2 = num2, num1

list_subjects.append(str(num1) + '-' + str(num2) + '=')

list_answers.append(num1 - num2)

#乘法运算

def mul():

num1 = random.randint(1, 100)

num2 = random.randint(1, 100)

list_subjects.append(str(num1) + 'x' + str(num2) + '=')

list_answers.append(num1 * num2)

#除法运算

def div():

num1 = random.randint(1, 100)

num2 = random.randint(1, 100)

num = Fraction(num1,num2)

list_subjects.append(str(num1) + '÷' + str(num2) + '=')

list_answers.append(num)

# 判断对错,累加正确分数

def judge():

count = 0 #分数值

for i in range(len(list_subjects)):

print("第{}题".format(i + 1))

print("题目:",list_subjects[i])

y_answer = eval(input("请输入你的答案:"))

if y_answer == float(list_answers[i]): #判断对错

print("正确!")

print("*************")

count += 1

else:

print("错误!正确答案是:{}".format(list_answers[i]))

return count

#分数运算

def frac():

fz1 = random.randint(1,10)

fm1 = random.randint(1,10)

if fz1 > fm1:

fz1,fm1 = fm1,fz1

num1 = Fraction(fz1,fm1)

fz2 = random.randint(1,10)

fm2 = random.randint(1,10)

if fz2 > fm2:

fz2,fm2 = fm2,fz2

num2 = Fraction(fz2,fm2)

if num1 < num2:

num1,num2 = num2,num1

rule = random.choice(['+','-','x','÷'])

if rule == '+':

list_subjects.append(str(num1) + ' + ' + str(num2) + '=')

list_answers.append(num1 + num2)

elif rule == '-':

list_subjects.append(str(num1) + ' - ' + str(num2) + '=')

list_answers.append(num1 - num2)

elif rule == 'x':

list_subjects.append("(" + str(num1) + ")" + 'x' + "(" + str(num2) + ")" + '=')

list_answers.append(num1 * num2)

else:

list_subjects.append("(" + str(num1) + ")" + '÷' + "(" + str(num2) + ")" + '=')

list_answers.append(num1 / num2)

main()

四、实验结果

五、PSP表格

|任务内容|计划完成需要的时间(min)|实际完成需要的时间(min)|

计划

20

25

估计这个任务需要多少时间,并规划大致工作步骤

15

17

开发

140

200

需求分析(包括学习新技术)

15

14

生成设计文档

10

10

设计复审

8

8

代码规范

12

15

具体设计

20

30

具体编码

100

140

代码复审

20

30

报告

20

25

测试报告

10

15

计算工作量

10

15

事后总结,并提出过程改进计划

3

5

六、总结反思

通过这次动手,我发现我思维的局限性感受到了自己很多的不足,以后我会好好改进,高效正确的完成任务。

python四则运算程序_四则运算(Python)相关推荐

  1. python四则运算程序_四则运算小程序(Python)

    二. 题目要求 写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展: 1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24 2)程序要求能处理用户的输入,判断对错,累积分 ...

  2. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  3. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  4. python矩阵运算程序_用于矩阵运算的Python程序

    python矩阵运算程序 There are following matrix operations, that we can implement with the numpy matrix. 我们可 ...

  5. python集群_使用Python集群文档

    python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...

  6. python 网页编程_通过Python编程检索网页

    python 网页编程 The internet and the World Wide Web (WWW), is probably the most prominent source of info ...

  7. python机器学习预测_使用Python和机器学习预测未来的股市趋势

    python机器学习预测 Note from Towards Data Science's editors: While we allow independent authors to publish ...

  8. python高斯求和_利用Python进行数据分析(3)- 列表、元组、字典、集合

    本文主要是对Python的数据结构进行了一个总结,常见的数据结构包含:列表list.元组tuple.字典dict和集合set. image 索引 左边0开始,右边-1开始 通过index()函数查看索 ...

  9. python 免费空间_用python做大数据

    不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...

最新文章

  1. 关于commonjs,AMD,CMD之间的异同
  2. Openstack 通过 SQLAlchemy-ORM 访问数据库
  3. s3c6140 UART驱动设计
  4. 如何高效的使用vim
  5. 检查用户是否有权限从ABAP里调用C kernel functions
  6. 设计模式--组合模式
  7. Win7下使用U盘安装linux Ubuntu16.04双系统图文教程
  8. java找不到符号类socket,编译报错+解决方法:错误: 找不到符号
  9. javaweb入门笔记(5)-cookie和session
  10. lvs keepalive配置Jenkins2高可用
  11. 【记录】【解决方案】java发邮件错误:Couldn‘t connect to host, port: localhost, 25; timeout -1;易邮SMTP服务器无法启动;
  12. python大漠库_python类似大漠插件的库
  13. itextpdf生成列表基本用法
  14. 【免费好用】节假日查询接口
  15. DataV 你值得拥有的大屏展示工具
  16. 同一服务器上运行两个mysql实例
  17. 关于Node.js中内存管理的思考与实践
  18. 用IntelliJ IDEA自带的文本差异对比器
  19. Highcharts 写 venn图 (韦恩图),以及解决项目中venn的报错
  20. 【分享】优秀外国英文网站

热门文章

  1. 干货 | 使用云监控实现触发一个url调用
  2. cocos2dx-js 开发
  3. 清明节全网灰色主题实现原理
  4. 交换机日志删除_锐捷交换机如何删除日志
  5. 谷粒商城项目搭建思路
  6. 项目学习--谷粒商城
  7. 使用udp协议实现服务器端程序时,uIP中UDP协议实现的改进
  8. 数仓建模之声明粒度 一文读懂什么是粒度 看完保证通透!
  9. 04、Netty学习笔记—(黏包半包及协议设计解析)
  10. mysql 时区设定_mysql的时区设置