国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中除法使用的注意事項

2020-02-23 05:41:17
字體:
來源:轉載
供稿:網友

本文實例講解了Python中除法使用的注意事項,是非常重要的技巧,對于Python程序設計來說有很好的借鑒價值。具體分析如下:

現來看如下示例:

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 

源程序只是為了演示變長參數的使用,不過 Python 2.7.1 的解釋器里,我得到的結果卻和注釋的結果不一樣

>>> def avg(first, *rest): ...   return (first + sum(rest)) / (1 + len(rest)) ...  >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2 

可以很明顯的看到,小數點后的數據被截斷了,我記得兩個整數相除,"http://" 應該才是取整,難道我記錯了?

>>> def avg(first, *rest): ...   return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//' ...  >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2 

將 “/” 改成了“//”,得到的結果是一樣的,“//”的確是取整這一點我是沒記錯,不過為什么“/”的結果也是截斷了的?

同樣的程序我在 3.4.1 的解釋器里面做了測試,得到了預想的結果:

>>> def avg(first, *rest): ...   return (first + sum(rest)) / (1 + len(rest)) ...  >>> avg(1, 2) 1.5 >>> avg(1, 2, 3, 4) 2.5 >>> def avg(first, *rest): ...   return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//' ...  >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2 

可以看到在 3.4.1 的解釋器里,“/”的結果保留了小數位,而“//”則是取整后的結果

搜索之后,找到了stackoverflow上的這個問題:Python里如何強制除法的結果為浮點數? 注意這個是針對 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程序設計有一定的幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 响水县| 泸溪县| 西丰县| 衡阳市| 白玉县| 尚义县| 绥宁县| 湟源县| 上高县| 乌鲁木齐县| 昆明市| 高尔夫| 安达市| 金华市| 英山县| 刚察县| 韶关市| 常州市| 托克逊县| 新源县| 和静县| 思茅市| 隆林| 五原县| 呼图壁县| 衢州市| 湘乡市| 伊宁市| 宣化县| 武宁县| 永新县| 双峰县| 赫章县| 温泉县| 涪陵区| 进贤县| 东城区| 咸宁市| 苍梧县| 普安县| 中方县|