#29732: 搞不懂差在哪(python解法


seanpekka (程式小白)

學校 : 不指定學校
編號 : 185069
來源 : [140.116.131.107]
最後登入時間 :
2023-12-18 19:51:15
a017. 五則運算 | From: [1.170.29.157] | 發表日期 : 2022-03-26 23:20

想不透為甚麼一定要將字串中的/換成//。

將輸出的值轉換成int()這樣做不行嗎?

這樣可以:

while True:
  try:
    f = input().replace('/','//')  
    print(eval(f))                  
  except:
    break

這樣不行:

while True:
    try:
        a = input()
        print(int(eval(a)))
    except:
        break

 

 
 
#29734: Re:搞不懂差在哪(python解法


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
a017. 五則運算 | From: [27.53.33.71] | 發表日期 : 2022-03-27 17:54

想不透為甚麼一定要將字串中的/換成//。

將輸出的值轉換成int()這樣做不行嗎?

這樣可以:

while True:
  try:
    f = input().replace('/','//')  
    print(eval(f))                  
  except:
    break

這樣不行:

while True:
    try:
        a = input()
        print(int(eval(a)))
    except:
        break

 

 


不一樣,一個是整除,一個是最後才轉換為整數。舉個例子:

1 / 2 + 1 / 2

你的第一種解法會變成0+0,最後結果是0,而第二種會變成int(0.5+0.5),最後結果是1

 
#29742: Re:搞不懂差在哪(python解法


seanpekka (程式小白)

學校 : 不指定學校
編號 : 185069
來源 : [140.116.131.107]
最後登入時間 :
2023-12-18 19:51:15
a017. 五則運算 | From: [1.170.29.157] | 發表日期 : 2022-03-28 22:58

喔喔!了解了,感謝!



 
ZeroJudge Forum