日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python编写四则运算_python实现四则运算

發(fā)布時間:2024/3/12 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python编写四则运算_python实现四则运算 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://gitee.com/szh123/four_arithmetic_implementation.git

1.需求分析:

實現(xiàn)四則運算題目及答案生成,控制生成題目的個數(shù),題目中數(shù)值不超過10且有分?jǐn)?shù)存在并用真分?jǐn)?shù)表示。

可以生成10000道題

運算符不超過3個

題目不能出現(xiàn)重復(fù)即不能經(jīng)過有限次交換成為相同題目

可以提供對給出的題目進(jìn)行查重及答案求解并輸出結(jié)果

2.功能設(shè)計:

(1)基礎(chǔ)功能:實現(xiàn)四則運算題目和答案的生成,對生成的四則運算題目進(jìn)行查重,支持對提供的題目進(jìn)行查重和答案求解并給出正確錯誤及題目重復(fù)的結(jié)果

(2)擴(kuò)展功能:

(3)高級功能:

3.設(shè)計實現(xiàn):

類1:生成隨機(jī)數(shù)

類2:生成整個表達(dá)式

類3:表達(dá)式轉(zhuǎn)換成為逆波蘭式

類4:樹

類5:類中存放一個數(shù)的分子與分母,同時toString方法輸出真分?jǐn)?shù)形式

類6:計算結(jié)果

類7:二叉樹的查重

類8:主函數(shù)

4.代碼說明:

生成表達(dá)式

def createarithmetic(self):

list = []

f1 = function1.function1()

f2 = function2()

operator_no = random.randint(1,3)

if operator_no == 1:

list.append(f1.createNum())

list.append(f2.createOperator())

list.append(f1.createNum())

elif operator_no == 2:

start = random.randint(0,2)

end = 0

if start == 0:

end == 0

else:

end = start +1

for i in range(1,4):

if i == start:

list.append("(")

list.append(f1.createNum())

if i == end:

list.append(")")

list.append(f2.createOperator())

list.pop()

elif operator_no == 3:

start = random.randint(0, 3)

end = 0

if start == 0:

end == 0

else:

end = start + 1 + random.randint(0,1)

if end >= 4:

end=4

for i in range(1, 5):

if i == start:

list.append("(")

list.append(f1.createNum())

if i == end:

list.append(")")

list.append(f2.createOperator())

list.pop()

else:

list.append(f1.createNum())

list.append(f2.createOperator())

list.append(f1.createNum())

return list

逆波蘭式生成

def toRPN(self,list):

right = []

aStack = []

position = 0

while True:

if self.isOperator(list[position]):

if list ==[] or list[position] == "(" :

aStack.append(list[position])

else:

if list[position] == ")":

while True:

if aStack != [] and aStack[-1] !="(" :

operator = aStack.pop()

right.append(operator)

else :

if aStack !=[]:

aStack.pop()

break

else:

while True:

if aStack != [] and self.priority(list[position],aStack[-1]):

operator = aStack.pop()

if operator != "(":

right.append(operator)

else:

break

aStack.append(list[position])

else:

right.append(list[position])

position = position +1

if position >= len(list):

break

while aStack != []:

operator = aStack.pop()

if operator != "(":

right.append(operator)

return right

5.測試運行:

主界面

選擇功能1:

題目

答案

選擇功能2:

6.PSP

7.小結(jié):

逆波蘭式的生成和計算,二叉樹的查重非常方便

總結(jié)

以上是生活随笔為你收集整理的python编写四则运算_python实现四则运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。