iT邦幫忙

0

請問Python 要如何讓多個浮點數相乘~

https://ithelp.ithome.com.tw/upload/images/20200604/20127646wA2ryi5eLJ.png
請讓使用者依序輸入數字,直到輸入q停止。(題目要求)

Float=1.00
Int=1
x=input()
while x!= 'q':
    if x==int(x):
        Int=Int*int(x)
    else:
        Float=Float*float(x)
    x=input()
else:
    if round(Float,2)>Int:
        print("Float>Int")
    elif round(Float,2)<Int:
        print("Float<Int")
    else:
        print("Float=Int")

請大家幫偶看要怎麼改,謝謝!

通靈亡 iT邦高手 1 級 ‧ 2020-06-04 13:30:33 檢舉
你的方向完全錯了:
1. 你應該要先讓使用者輸入完所有的數字
 在每次輸入的當下判斷它是float還是int後進行分類
2. 所有輸入數字完後,分別將所有的float相乘,以及所有的int相乘
3. 最後根據int跟float數字誰比較多
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
通靈亡
iT邦高手 1 級 ‧ 2020-06-04 14:57:35
最佳解答

給你一段不完整且有Bug的程式碼當作參考
自己試著理解並修改成正確的程式碼

如果直接照抄給老師,後果請自負。

intList, floatList = [], []
intResult, floatResult = 1, 1

x = ""

while x != "q":
    #輸入數字
    x = input()
    
    #分類
    if x.replace('.', '', 1).isdigit() == False:
        break
    elif float(x).is_integer():
        intList.append(int(x))

#全部 int 的乘積
for value in intList:
    intResult = intResult * value

#判斷 float 跟 int 誰的所有乘積比較多
if (floatResult > intResult):
    print (floatResult, intResult, "Float > Int")
elif (floatResult < intResult):
    print (floatResult, intResult, "Float < Int")
else:
    print (floatResult, intResult, "Float = Int")

輸出sample:
https://ithelp.ithome.com.tw/upload/images/20200604/20120331oBzivaKJ2N.png

我要發表回答

立即登入回答