python四则运算程序_四则运算(Python)
四則運(yùn)算程序
一、信息
二. 題目要求
寫一個(gè)能自動(dòng)生成小學(xué)四則運(yùn)算題目的程序,然后在此基礎(chǔ)上擴(kuò)展:
1
除了整數(shù)以外,還要支持真分?jǐn)?shù)的四則運(yùn)算,例如:1/6+1/8=7/24
2
程序要求能處理用戶的輸入,判斷對(duì)錯(cuò),累積分?jǐn)?shù)
3
程序支持可以由用戶自行選擇加、減、乘、除運(yùn)算
4
使用-n參數(shù)控制生成題目的個(gè)數(shù),例如Myapp.exe -n 10,將生成10個(gè)題目
三、代碼
import random # 生成隨機(jī)數(shù)
from fractions import Fraction # 分?jǐn)?shù)運(yùn)算
list_subjects=[] # 對(duì)題目信息儲(chǔ)存
list_answers =[] # 對(duì)答案信息儲(chǔ)存
#主函數(shù)
def main():
display() #調(diào)用信息界面
n = int(input("共有題目數(shù)量為:"))
print("**************")
choose_rule = int(input("在1-5中選擇需要的運(yùn)算:"))
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("輸入有誤,請(qǐng)選擇(1-5)!")
break
count = judge()
print("總共{}分,共答對(duì){}分".format(n,count))
#信息界面
def display():
print("四則運(yùn)算開始!!")
print(" 1. 除法運(yùn)算(÷)")
print(" 2. 乘法運(yùn)算(x)")
print(" 3. 減法運(yùn)算(-)")
print(" 4. 加法運(yùn)算(+)")
print(" 5. 真分?jǐn)?shù)運(yùn)算(隨機(jī)算法)")
#加法運(yùn)算
def add():
num1 = random.randint(1, 100)
num2 = random.randint(1, 100)
list_subjects.append(str(num1) + '+' + str(num2) + '=')
list_answers.append(num1 + num2)
#減法運(yùn)算
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)
#乘法運(yùn)算
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)
#除法運(yùn)算
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)
# 判斷對(duì)錯(cuò),累加正確分?jǐn)?shù)
def judge():
count = 0 #分?jǐn)?shù)值
for i in range(len(list_subjects)):
print("第{}題".format(i + 1))
print("題目:",list_subjects[i])
y_answer = eval(input("請(qǐng)輸入你的答案:"))
if y_answer == float(list_answers[i]): #判斷對(duì)錯(cuò)
print("正確!")
print("*************")
count += 1
else:
print("錯(cuò)誤!正確答案是:{}".format(list_answers[i]))
return count
#分?jǐn)?shù)運(yùn)算
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()
四、實(shí)驗(yàn)結(jié)果
五、PSP表格
|任務(wù)內(nèi)容|計(jì)劃完成需要的時(shí)間(min)|實(shí)際完成需要的時(shí)間(min)|
計(jì)劃
20
25
估計(jì)這個(gè)任務(wù)需要多少時(shí)間,并規(guī)劃大致工作步驟
15
17
開發(fā)
140
200
需求分析(包括學(xué)習(xí)新技術(shù))
15
14
生成設(shè)計(jì)文檔
10
10
設(shè)計(jì)復(fù)審
8
8
代碼規(guī)范
12
15
具體設(shè)計(jì)
20
30
具體編碼
100
140
代碼復(fù)審
20
30
報(bào)告
20
25
測(cè)試報(bào)告
10
15
計(jì)算工作量
10
15
事后總結(jié),并提出過程改進(jìn)計(jì)劃
3
5
六、總結(jié)反思
通過這次動(dòng)手,我發(fā)現(xiàn)我思維的局限性感受到了自己很多的不足,以后我會(huì)好好改進(jìn),高效正確的完成任務(wù)。
總結(jié)
以上是生活随笔為你收集整理的python四则运算程序_四则运算(Python)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kubernetes HPA 的三个误区
- 下一篇: kubernetes中metrics-s