1st_homework_SE--四则运算题目生成器
生活随笔
收集整理的這篇文章主要介紹了
1st_homework_SE--四则运算题目生成器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
0x00 Code
查詢源代碼及README請點此
0x01 需求分析
實現一個自動生成小學四則運算題目的命令行程序。
0x02 功能設計
主要功能為:
- 接受用戶輸入以便知道要出多少道題目
python start.py -n NUMBER - 能隨機產生題目: 包括真分數在內的四則運算
- 打印題目并接收用戶輸入的答案
- 用戶輸入的答案與程序計算出來的結果進行匹對
5.將生成器分別放在3個不同的文件。
calc.py 為 本項目所使用函數文件
config.py 為 配置文件
start.py 為啟動文件
方便進行管理以及功能改善。
可閱讀性和維護性較高
6.可以在配置文件中進行設置Fraction Mode.來滿足不同年齡段小朋友的做題需求
0x03 代碼分析
這次的題目比較簡單。
python有包含fraction的包,導入from fractions import Fraction即可使用。
使用全局變量global result可在各個函數中相互調用,但是在函數中需聲明
采用各個函數分離的方式,由于選擇operation的過程有較多重復代碼,所以將其分離。
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 小結
1.第一次自己寫包再在不同的文件中調用。 import時只要寫明文件名即可,不用加上.py
2.raw_input()這個函數在使用時直接獲取的內容為str型。
3.eval()這個函數可以計算str中包含的運算式子.這樣可以減少很多代碼量!不過由于eval()的安全問題,建議少用。
4.在本次試驗中遇到最大的問題是,一開始程序對answer和result無法判斷正確,后來睡了一覺突然想起來有可能是type的問題。結果果然是!一個是 “class fractions. fraction” 一個是“type int”
總結
以上是生活随笔為你收集整理的1st_homework_SE--四则运算题目生成器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NASON
- 下一篇: centos7下的防火墙部署