所以我試圖輸入一個分區問題作爲參數,我總是得到0當答案是< 1.我知道這是爲什麼發生,但我不知道如何解決這個問題,它給出了一個小數的答案分區作爲輸入參數返回0
def division(x): print x
其中 「x」 爲1/2,代碼打印」 .5"
我使用JES版本5.020。任何指導將非常感謝!
所以我試圖輸入一個分區問題作爲參數,我總是得到0當答案是< 1.我知道這是爲什麼發生,但我不知道如何解決這個問題,它給出了一個小數的答案分區作爲輸入參數返回0
def division(x): print x
其中 「x」 爲1/2,代碼打印」 .5"
我使用JES版本5.020。任何指導將非常感謝!
首先,有在具有稱爲除法功能是沒有意義的,如果它是所有打印輸入。
現在到實際的問題。您使用的是Python 2.在Python 2中,整數除法總是一個整數。所以1/3(應該等於0.33)僅爲0.
解決方法是將至少一個數字轉換爲浮點數。這可以通過以下方式進行:
float(1)/3
1.0/3
是的,在當前的設置,數量也傳遞給你的函數之前會發生這種劃分。所以你的功能完美運作,它是需要改變的輸入。
編輯:
如果你不能改變輸入和需要支持浮點整數的麪點師用未來模塊。這使一些Python 3個功能蟒蛇2.
此行添加到代碼的開頭:
from __future__ import division
我試圖做甚至可能嗎?在分割發生之前,輸入不能轉換爲浮點數。我希望用戶只是指定參數「1/2」,並讓函數知道它是.5而不是0. –
這是可能的,但我不明白你爲什麼想要這樣做。預計數字輸入是數字,而不是數字的分數表示。至少這就是編程語言所假設的。如果您希望允許用戶輸入不受該語言支持的表示形式的數字,則應該以字符串形式輸入,然後根據需要處理輸入內容。但幸運的是,在你的情況下,一個小修改可以讓你得到你想要的結果。請看我編輯的答案。 – shish023
是的,我試過'from __future__ import division',但它不會加載並給出無效的語法錯誤。我不確定該從哪裏出發。 –
添加的邏輯'高清divison()' – Juggernaut
我不知道是什麼意思。有沒有我可以閱讀的文章? –