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