ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python四则运算升级

2019-04-04 13:42:02  阅读:255  来源: 互联网

标签:四则运算 20 randint python random 升级 num str append


源代码已发布在码云https://gitee.com/liudanxi/codes/y65w40d1qxnvieukjt8rm12

 

对python四则运算进行功能界面的升级

升级简介

(1)加载“tkinter”库,设计窗口来实现功能

(2)首次按下按钮开始做题,生成题目。再次按下按钮,获取用户输出内容,与正确答案匹配,生成“题目+答案+用户答案+正确与否”字符串;当做到10的倍数时,弹窗提示做题数目和正确数目。

代码说明:

 1 def button(): #按钮处理函数
 2     #buttonNew.place_forget() #隐藏button
 3     global Number
 4     global RAns
 5     global Rnum
 6     if Number is 0: #开始步骤
 7         EnterAns.delete('0','end')
 8         listAns.insert(0, "开始答题~~")
 9         buttonNew["text"] = "下一题"
10         R = Newq()  # 获取新问题
11         Q1["text"] = R[1]  # 问题
12         RAns=R[0]
13         Number+=1
14     else:  #先判断上一题是否正确再生成新题目 每5道有一道为真分数的运算
15         User_A = EnterAns.get()
16         u=Q1["text"]+"="+str(RAns)+"    your "+User_A+":"
17         if User_A == str(RAns): #匹配答案
18             u += " right"
19             Rnum+=1
20         else:
21             u += " wrong"
22         listAns.insert(0, u)
23         if Number%5!=0:
24             R = Newq()  # 获取整数新问题
25         else:
26             R=newF() # 获取分数新问题
27         Q1["text"] = R[1]  # 问题
28         RAns = R[0]  #正确答案
29         Number += 1
30         EnterAns.delete('0', 'end') #清空输入框
31     if Number%30 == 0 :
32         sss='你做了'+str(Number)+'道题,对了'+str(Rnum)+'道'
33         tkinter.messagebox.showinfo("well done",sss)

 1 #整数的加减乘除
 2 def Newq():
 3     s=['+','-','×','÷']
 4     q=[]
 5     s_num=random.randint(0, 3)
 6     if s_num is 0 :#加法
 7         a=random.randint(0,50)
 8         b=random.randint(0,50)
 9         q.append(a+b)
10         q.append(str(a)+' '+s[s_num]+' '+str(b))
11         return q
12     elif s_num is 1 :#减法
13         a=random.randint(0,50)
14         b=random.randint(0,a)
15         q.append(a - b)
16         q.append(str(a) + ' '+s[s_num]+' ' + str(b))
17         return q
18     elif s_num is 2 :#乘法
19         a=random.randint(0,20)
20         b=random.randint(0,20)
21         q.append(a * b)
22         q.append(str(a) + ' '+s[s_num]+' ' + str(b))
23         return q
24     else : #除法
25         a=random.randint(0,20)
26         b=random.randint(1,20)
27         if (a>b and a%b!=0): #避免出现 20/3 这样的问题
28             tmp=a
29             a=b
30             b=tmp
31         c=Fraction(a,b)
32         q.append(str(c))
33         q.append(str(a) + ' '+s[s_num]+' ' + str(b))
34         return q
 1 #分数的加减乘除  
 2 def newF():
 3     s=['+','-','×','÷']
 4     q=[]
 5     s_num=random.randint(0, 3)
 6     t1 = random.randint(0, 20)
 7     if t1==0:
 8         t2=random.randint(1, 20)
 9     else:
10         t2 = random.randint(t1, 20)
11     a=Fraction(t1,t2)
12     t1 = random.randint(1, 20)
13     if t1==0:
14         t2=random.randint(1, 20)
15     else:
16         t2 = random.randint(t1, 20)
17     b = Fraction(t1, t2)
18     if s_num is 0 :#加法
19         q.append(a+b)
20         q.append(str(a)+' '+s[s_num]+' '+str(b))
21         return q
22     elif s_num is 1 :#减法
23         if a<b:
24             tm=a
25             a=b
26             b=tm
27         q.append(a - b)
28         q.append(str(a) + ' '+s[s_num]+' ' + str(b))
29         return q
30     elif s_num is 2 :#乘法
31         q.append(a * b)
32         q.append(str(a) + ' '+s[s_num]+' ' + str(b))
33         return q
34     else : #除法
35         c=Fraction(a,b)
36         q.append(str(c))
37         q.append(str(a) + ' '+s[s_num]+' ' + str(b))
38         return q

测试运行

PSP表格:

    预计耗时(分钟) 实际耗时(分钟)
Planning 计划 5  3
Estimate 估计这个任务需要多少时间 5  3
Development 开发 76  130
Analysis 需求分析  10  5
Design Spec 生成设计文档  0
Design Review 设计复审(和同事审核设计文档)  5  0
Coding Standerd 代码规范(为目前的开发制定合适的规范) 5  15
Design 具体设计 10  20
Coding 具体编码 40 90
Code Review 代码复审 5  10
Text 测试(自测,修改代码,提交修改)  20  5
Reporting 报告  12  22
Text Report 测试报告 8  15
Size Measurement 计算工作量  5  2
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 10  5
Sum 合计 216  325

标签:四则运算,20,randint,python,random,升级,num,str,append
来源: https://www.cnblogs.com/liudanxi/p/10654289.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有