python算式运算题目_python的四则运算练习
題目要求:
(1)能自動生成小學四則運算題目,其中不能出現負數;
(2)除了整數外,還能支持真分數的四則運算;
解題思路描述:
(1)四則運算加減乘除,采用兩個隨機數,由于不能出現負數,則對兩個隨機數進行比較大小再進行減法運算,除法一向特殊,所以在隨機數的取值范圍中設置不包括0。
(2)真分數運算在pycharm中導入fractions庫,代碼:
1 importrandom2 from fractions import Fraction
設計實現過程:
設計出以下三個函數:
def newint() 生成整數四則運算
def newfra() 生成真分數四則運算
def newtest() 生成制定指定數量的四則運算題目
三個函數的函數關系:
newint()與newfra()為獨立的函數,負責生成隨機四則運算,newtest()則隨機調用上述兩個函數生成題目。
代碼說明:
首先說明整數的四則運算,生成兩個隨機數并隨機運算,在減法中比較大小防止出現負數,在除法中比較大小并循環取整除的隨機數組合。最后輸出算式并返回正確答案。
1 defnewint():2 opr = ['+', '-', '×', '÷']3 fh = random.randint(0, 3)4 n1 = random.randint(1, 20)5 n2 = random.randint(1, 20)6 rjg =07 if fh ==0:8 rjg = n1 +n29 elif fh == 1:10 n1, n2 =max(n1, n2), min(n1, n2)11 rjg = n1 -n212 elif fh == 2:13 rjg = n1 *n214 elif fh == 3:15 n1, n2 =max(n1, n2), min(n1, n2)16 while n1 % n2 !=0:17 n1 = random.randint(1, 10)18 n2 = random.randint(1, 10)19 n1, n2 =max(n1, n2), min(n1, n2)20 rjg = int(n1 /n2)21 print(n1, opr[fh], n2, '=', end='')22 returnrjg23 '''jg = input()24 sr = int(jg)25 if int(sr) == rjg:26 print('right')27 else:28 print('error. the Tight answer is', rjg)'''
真分數四則運算類似。
1 defnewfra():2 opr = ['+', '-', '×', '÷']3 fh = random.randint(0, 3)4 t1 = random.randint(1, 10)5 t2 = random.randint(t1, 10)6 n1 =Fraction(t1, t2)7 t1 = random.randint(1, 10)8 t2 = random.randint(t1, 10)9 n2 =Fraction(t1, t2)10 rjg =011 if fh ==0:12 rjg = n1 +n213 elif fh == 1:14 n1, n2 =max(n1, n2), min(n1, n2)15 rjg = n1 -n216 elif fh == 2:17 rjg = n1 *n218 elif fh == 3:19 n1, n2 =max(n1, n2), min(n1, n2)20 rjg = n1 /n221 print(n1, opr[fh], n2, '=', end='')22 returnrjg23 '''jg = input()24 sr = Fraction(jg)25 if sr == rjg:26 print('right')27 else:28 print('error. the Tight answer is', rjg)'''
newtest()函數是要求用戶輸入一個整數來輸出算式的數量,采用while循環隨機生成整數或者真分數運算,將答案保存在rjg列表的同時輸出算式直到算式數量達到要求。最后輸出rjg列表即輸出答案。
1 defnewtest():2 opr = ['+', '-', '×', '÷']3 print('輸入題庫所需要的題目數量')4 n=int(input())5 rjg=[]6 m=07 while m<=(n-1):8 fh = random.randint(0, 4)9 if fh==0:10 print(m+1,end='、')11 rjg.append(newfra())12 print(' ')13 else:14 print(m+1,end='、')15 rjg.append(newint())16 print(' ')17 m=m+1
18 m=019 print('答案:')20 while m<=(n-1):21 print(m+1,'、',rjg[m])22 m=m+1
下列為主函數,第一個模式負責調用上述newint()、new函數,并獲得函數返回值即算式答案,與用戶輸入值進行比較。第二個模式則是生成算式題目。
1 print('1、四則運算')2 print('2、制作題庫')3 n=int(input())4 if n==1:5 print('input "0000" to Quit')6 whileTrue:7 fh = random.randint(0, 4)8 if fh ==0:9 rjg =newfra()10 jg =input()11 if jg == '0000':12 break;13 sr =Fraction(jg)14 if sr ==rjg:15 print('right')16 else:17 print('error. the Tight answer is', rjg)18 else:19 rjg =newint()20 jg =input()21 if jg == '0000':22 break;23 sr =int(jg)24 if sr ==rjg:25 print('right')26 else:27 print('error. the Tight answer is', rjg)28 if n==2:29 newtest()
測試運行:
先測試運行第一個模式,如下圖:
第二個模式,先輸出25個算式數量:
輸出500個算式數量,運行完成且無報錯,部分截圖如下:
改進程序性能:
由于本人從未嘗試對程序進行性能分析和改進,初次嘗試使用cProfile方式,如有錯誤還請包涵。
輸出500個算式結果:
PSP表格:
預計耗時(分鐘)
是實際耗時(分鐘)
Planning
計劃
5
15
Estimate
估計這個任務需要多少時間
5
10
Development
開發
100
150
Analysis
需求分析
2
15
Design Spec
生成設計文檔
20
30
Design Review
設計復審(和同事審核設計文檔)
10
20
Coding Standerd
代碼規范(為目前的開發制定合適的規范)
30
50
Design
具體設計
10
30
Coding
具體編碼
40
100
Code Review
代碼復審
3
15
Text
測試(自測,修改代碼,提交修改)
15
40
Reporting
報告
20
40
Text Report
測試報告
5
15
Size Measurement
計算工作量
10
15
Postmortem & Process Improvement Plan
事后總結,并提出過程改進計劃
10
20
Sum
合計
280
565
總結
以上是生活随笔為你收集整理的python算式运算题目_python的四则运算练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 怎么重启网络
- 下一篇: 利用声音传感器控制led灯功能_树莓派.