1st_homework_SE--四则运算题目生成器
0x00 Code
查詢源代碼及README請點此
0x01 需求分析
實現(xiàn)一個自動生成小學(xué)四則運算題目的命令行程序。
0x02 功能設(shè)計
主要功能為:
- 接受用戶輸入以便知道要出多少道題目
python start.py -n NUMBER - 能隨機(jī)產(chǎn)生題目: 包括真分?jǐn)?shù)在內(nèi)的四則運算
- 打印題目并接收用戶輸入的答案
- 用戶輸入的答案與程序計算出來的結(jié)果進(jìn)行匹對
5.將生成器分別放在3個不同的文件。
calc.py 為 本項目所使用函數(shù)文件
config.py 為 配置文件
start.py 為啟動文件
方便進(jìn)行管理以及功能改善。
可閱讀性和維護(hù)性較高
6.可以在配置文件中進(jìn)行設(shè)置Fraction Mode.來滿足不同年齡段小朋友的做題需求
0x03 代碼分析
這次的題目比較簡單。
python有包含fraction的包,導(dǎo)入from fractions import Fraction即可使用。
使用全局變量global result可在各個函數(shù)中相互調(diào)用,但是在函數(shù)中需聲明
采用各個函數(shù)分離的方式,由于選擇operation的過程有較多重復(fù)代碼,所以將其分離。
def calc_fract():
temp1,temp2=random.randrange(1,10),random.randrange(1,10)
if temp1>temp2:
temp1,temp2=temp2,temp1
fract1=Fraction(temp1,temp2)
temp1, temp2 = random.randrange(1, 10), random.randrange(1, 10)
if temp1>temp2:
temp1,temp2=temp2,temp1
fract2 = Fraction(temp1, temp2)
if fract1<fract2:
fract1,fract2=fract2,fract1
op = ['+', '-', '*', '/']
operation = random.choice(op)
operate(fract1,fract2,operation)
def calc_int():
temp1, temp2 = random.randrange(1, 10), random.randrange(1, 10)
if(temp1<temp2):
temp1,temp2=temp2,temp1
op = ['+', '-', '*', '/']
operation = random.choice(op)
operate(temp1,temp2,operation)
0x05 測試運行:
Fraction Mode
No Fraction Mode :
0x05 psp
0x06 小結(jié)
1.第一次自己寫包再在不同的文件中調(diào)用。 import時只要寫明文件名即可,不用加上.py
2.raw_input()這個函數(shù)在使用時直接獲取的內(nèi)容為str型。
3.eval()這個函數(shù)可以計算str中包含的運算式子.這樣可以減少很多代碼量!不過由于eval()的安全問題,建議少用。
4.在本次試驗中遇到最大的問題是,一開始程序?qū)nswer和result無法判斷正確,后來睡了一覺突然想起來有可能是type的問題。結(jié)果果然是!一個是 “class fractions. fraction” 一個是“type int”
總結(jié)
以上是生活随笔為你收集整理的1st_homework_SE--四则运算题目生成器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NASON
- 下一篇: centos7下的防火墙部署