python2.7除法_Python中除法使用的注意事项
本文實例講解了Python中除法使用的注意事項,是非常重要的技巧,對于Python程序設計來說有很好的借鑒價值。具體分析如下:
現(xiàn)來看如下示例:
def avg(first,*rest):
return (first + sum(rest)) / (1 + len(rest))
# Sample use
avg(1,2) # 1.5
avg(1,2,3,4) # 2.5
源程序只是為了演示變長參數(shù)的使用,不過 Python 2.7.1 的解釋器里,我得到的結果卻和注釋的結果不一樣
>>> def avg(first,*rest):
... return (first + sum(rest)) / (1 + len(rest))
...
>>> avg(1,2)
1
>>> avg(1,4)
2
可以很明顯的看到,小數(shù)點后的數(shù)據被截斷了,我記得兩個整數(shù)相除,"//" 應該才是取整,難道我記錯了?
>>> def avg(first,*rest):
... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//'
...
>>> avg(1,4)
2
將 “/” 改成了“//”,得到的結果是一樣的,“//”的確是取整這一點我是沒記錯,不過為什么“/”的結果也是截斷了的?
同樣的程序我在 3.4.1 的解釋器里面做了測試,得到了預想的結果:
>>> def avg(first,2)
1.5
>>> avg(1,4)
2.5
>>> def avg(first,4)
2
可以看到在 3.4.1 的解釋器里,“/”的結果保留了小數(shù)位,而“//”則是取整后的結果
搜索之后,找到了stackoverflow上的這個問題:Python里如何強制除法的結果為浮點數(shù)? 注意這個是針對 2.x 的版本,3.x 里面并不存在這樣的問題
答案的前兩個解決方案,都很不錯:
方法1:
>>> from __future__ import division
>>> a = 4
>>> b = 6
>>> c = a / b
>>> c
0.66666666666666663
方法2:
類似于C語言里面的做法:
c = a / float(b)
相信本文所述實例會對大家的Python程序設計有一定的幫助。
總結
以上是生活随笔為你收集整理的python2.7除法_Python中除法使用的注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pid控制从入门到精通pdf_网络工程师
- 下一篇: pc工具不支持stb的加密方式_如何选择