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


seanpekka (程式小白)


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

將輸出的值轉換成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)


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

將輸出的值轉換成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 (程式小白)


喔喔!了解了,感謝!