2022年9月27日 星期二

python b538: 分數運算-2

 b538: 分數運算-2


輸入說明

每組測資有多列以EOF結束,每列四個整數 -9999 <=a,b,c,d <=9999 一個字元{ + - * / }以空白隔開
代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。{b,d不為0,若為除法運算則c亦不為0}


輸出說明

對輸入的每一列,輸出1個 分數的運算結果且為最簡分數 p/q ,若 p被q整除,則只顯示一個整除後的整數。


>>> %Run -c $EDITOR_CONTENT

-------b538: 分數運算-2-------

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : -1 2 4 -3 +



list:  ['-1', '2', '4', '-3', '+']

-1/2 + -4/3 = -11/6

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : 1 1 1 1 -



list:  ['1', '1', '1', '1', '-']

1 - 1 = 0

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : 1 1 1 2 +



list:  ['1', '1', '1', '2', '+']

1 + 1/2 = 3/2

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : 2 3 1 2 *


from fractions import Fraction

nums=[]

#---------------------------------------------

print('-------b538: 分數運算-2-------')

while True:

    try:

        print ('代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。')

        input_string = input('輸入四個整數 暨 一個字元{ + - * / } : ')

        print("\n")

        user_list = input_string.split()

        # print list

        print('list: ', user_list)

        for i in range(len(user_list)-1):

            # convert each item to int type

            user_list[i] = int(user_list[i])

        a=Fraction(user_list[0]  , user_list[1])

        b=Fraction(user_list[2]  , user_list[3])

        if (user_list[4]=='+'):

            res = a+b

            print (a,'+',b,'=',res)

        elif (user_list[4]=='-'):

            res = a-b

            print (a,'-',b,'=',res)

        elif (user_list[4]=='*'):            

            res = a*b

            print (a,'*',b,'=',res)

        else :  #(user_list[4]=='/'):           

            res = a/b

            print (a,'/',b,'=',res)

            

    except:

        break


>>> %Run -c $EDITOR_CONTENT

-------b538: 分數運算-2-------

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : -1 2 4 -3 +



list:  ['-1', '2', '4', '-3', '+']

-1/2 + -4/3 = -11/6

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : 1 1 1 1 -



list:  ['1', '1', '1', '1', '-']

1 - 1 = 0

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : 1 1 1 2 +



list:  ['1', '1', '1', '2', '+']

1 + 1/2 = 3/2

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : 2 3 1 2 *



list:  ['2', '3', '1', '2', '*']

2/3 * 1/2 = 1/3

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : 2 3 2 3 /



list:  ['2', '3', '2', '3', '/']

2/3 / 2/3 = 1

代表兩個分數 a/b @ c/d ,其中@為加減乘除之一。

輸入四個整數 暨 一個字元{ + - * / } : 



list:  []

>>> 

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...