什麼是Python的以下解決方案?在Python中四捨五入到任意精度的有效方法
我在閱讀具有.5分辨率的溫度傳感器。我需要寫入它(它有一個可編程的恆溫器輸出),也有.5分辨率。
所以我寫了這個功能(Python 2.7版)的持股量輸入四捨五入到到最近的1.5:
def point5res(number):
decimals = number - int(number)
roundnum = round(number, 0)
return roundnum + .5 if .25 <= decimals < .75 else roundnum
print point5res (6.123)
print point5res(6.25)
print point5res(6.8)
的正常工作,輸出6.0,分別爲6.5和7.0。這正是我想要的。
我對Python比較陌生。該行
return roundnum + .5 if .25 <= decimals < .75 else roundnum
有我流口水讚歎它的執行者。但是Pythonic?
編輯:自發布以來,我多瞭解了一些關於what is and isn't 'Pythonic'。我的代碼不是。下面是Cmd的簡介。謝謝!
嘗試它 - 5.4。 –
或一般負數值我想 –
嘗試6.51。結果是7.5。但是你是對的,鏈式比較是一個很棒的功能。而三元表達式的語法,一旦你「得到」它,也是非常好的。 –