999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

探索計算之美

2021-10-30 02:21:16王新勇
中國信息技術教育 2021年20期

王新勇

高中信息技術新教材注重理論與實踐的結合以及學科本身的科學性和理論性,并且以實現信息意識、計算思維、數字化學習與創新以及信息社會責任四個核心素養的提升為目標。筆者以Python的round()函數作為切入點,對數據與計算的關系和深層鏈接進行探究。文章中涉及Python的語法規則均以Python3為基礎,代碼運行環境為python3.8.5版本。

● 發現問題

1.round()函數的概念

round()函數為Python內置(built-in)的函數,Python安裝完成后即具有該函數的功能,不需要再引入額外的模塊。round()函數提供了低精度的四舍五入的功能,需要重點理解低精度以及四舍五入的原則。

2.round()函數的參數

round()函數提供了兩個參數,round(x, n),其中參數x可以是整型(int)、實型(float)或布爾型(bool)的數值,不能是字符串、列表或字典等數據結構類型的值。參數n是一個整數值,為可選參數,用來表示小數點后保留的位數,如round(1.233,2),值為1.23,即小數點后保留2位。參數n可以為負數,當n為負數時,相當于對整數的第n位(-1,對應個位)進行四舍五入,如round(1123,-2),值為1100,如圖1所示。n為負整數的情況,非重點探究內容,不做討論。

3.round()函數取整實驗

基于Python的IDLE交互式Shell工具,進行round()函數的取整實驗,如圖2所示。

對于round(1.3)和round(1.7),是符合四舍五入的原則的。對于round(1.5)和round(2.5),結果為什么都是2?round(3.5)和round(4.5)結果為什么都是4?這是需要思考和探究的第一個問題。

● 追本溯源

1.Python版本差異

如下頁圖3所示,round()函數在Python3.0版本相比Python2的變化,主要內容包括如下幾點:①round()函數從Python3.0開始,對于0.5、1.5、2.5這類小數部分值為0.5的float類型數值,取整時是舍入到偶數的一邊。例如,round(2.5),值為2;round(1.5),值也是2。以1.5為例,由于1.5與1和2的距離是一樣的,都是0.5的差值,因此,在Python3.0版本開始遵循親偶數邊取整的原則,我們稱之為親偶性。②對于round(x)函數中只有一個參數x的情況,是取整操作,則返回int整型。例如,round(1.555),返回值為2,類型為int。③對于round(x,n)函數中包括兩個參數x和n的情況,返回值的類型,與參數x的類型一致,不再是Python2版本中定義的統一返回float類型。例如,round(1,2)返回1,類型為int;round(1.000,2),則返回1.0(等同于1.00),類型為float,如圖4所示。

2.round()函數取整總結

根據上述Python3版本的變更分析,可以總結得出round(x)函數的特點為“四舍六入五親偶”。這里的四舍六入較好理解,對于五親偶,即針對0.5,1.5,2.5這類小數部分值為0.5的float類型數值,通過round(x)函數取整時,結果是舍入到偶數的一邊。對于round(1.5)和round(2.5)的返回值都為2的問題,已經找到了答案。

● 問題拓展

通過round()函數進行float類型數值的保留小數位數的四舍五入實驗,發現如下問題:兩個數值的小數部分都是0.675,保留兩位小數的四舍五入結果為什么不一樣呢(如圖5)?帶著這樣的問題,思考float類型數值在計算機中是如何表示的,進一步探究float類型的浮動本質。

● 浮動本質

以0.4和100.4為例,通過print()函數設置參數“%.30f”格式化輸出30位小數的方式,來觀察Python3的float數值的真實值表示,與原始值相同的部分為17位有效數字,如圖6和圖7所示。

0.4格式化輸出30位小數的數值中紅框內的17位有效數字,小數部分占了16位,整數部分為0,占了1位。100.4格式化輸出30位小數的數值中紅框內的17位有效數字,小數部分占了14位,整數部分為100,占了3位。Python3中float類型數值的精度為17位有效數字。如圖8所示,Python3版本基于IEEE-754中對浮點數的定義,確定了17位有效數字來表示float類型數值。

通過float類型數值的判等運算,也可以驗證17位有效數字的精度控制,進一步理解float類型數值的浮動本質。對于float類型的數值比較,Python只會取其前17位有效數字的值進行比較,17位有效數字包括整數和小數部分。如下頁圖9所示,0.4與0.4000000000000001(小數部分的第16位值為1)進行判等比較值為False,是因為0.4等價于0.4000000000000000,第16位值為0,而0.4與0.40000000000000001(小數部分第17位值為1)和0.40000000000000002(小數部分第17位值為2)判等為True,則是因為前17位有效數字部分的值是相同的,小數部分精度范圍外的值不參與比較運算。

● 刨根問底

精度范圍外的數值是如何產生的?如下頁圖10所示,0.675小數點后第17位~第30位的值,是如何產生的?需要從float類型的十進制數值轉二進制的過程來探究。

1.float類型數值轉換為二進制

轉換原則:乘2取整,直到小數部分值為0,則轉換完成。以數值0.125為例,轉換為二進制的過程如下頁圖11所示。

主站蜘蛛池模板: 91精品国产91久无码网站| 久久无码高潮喷水| 免费a级毛片18以上观看精品| 中文字幕亚洲专区第19页| 国产真实二区一区在线亚洲| 99热这里只有精品5| 亚洲大尺码专区影院| 精品国产成人av免费| 一级看片免费视频| 国产黑丝一区| 91www在线观看| 一级高清毛片免费a级高清毛片| 成人亚洲国产| 亚洲区一区| 亚洲精品成人7777在线观看| 伊人丁香五月天久久综合| 丰满人妻久久中文字幕| 在线99视频| 日本亚洲成高清一区二区三区| 91久久偷偷做嫩草影院| 四虎影视无码永久免费观看| 夜精品a一区二区三区| 午夜视频免费一区二区在线看| v天堂中文在线| 在线a视频免费观看| 欧美翘臀一区二区三区| 国产一区二区视频在线| 一本大道东京热无码av| 日本福利视频网站| 亚洲国产无码有码| 国产精品污污在线观看网站| 久久香蕉国产线看观| 最新精品国偷自产在线| 一本大道视频精品人妻| 欧美日本在线播放| 天天综合亚洲| 天天综合色网| 久久精品无码一区二区日韩免费| 国产区福利小视频在线观看尤物| 国产精品无码久久久久久| 国产一级小视频| 亚洲国产精品久久久久秋霞影院| 国产麻豆永久视频| 国产极品美女在线观看| 久久精品无码专区免费| 亚洲综合婷婷激情| 日韩精品成人在线| 欧美不卡视频一区发布| 97色婷婷成人综合在线观看| 国产亚洲精品91| 亚洲欧美日韩久久精品| 国产打屁股免费区网站| 六月婷婷激情综合| 日韩亚洲综合在线| 国产人人射| 999福利激情视频| 伊人久久婷婷五月综合97色| 欧美中文字幕在线视频| 在线视频精品一区| 日韩在线永久免费播放| 免费看a级毛片| 免费一级毛片在线观看| 中国精品自拍| 国产精品久久自在自2021| 国产在线视频导航| 久久综合亚洲色一区二区三区| 热re99久久精品国99热| 成人午夜视频免费看欧美| 国产情精品嫩草影院88av| 成人日韩视频| 欧美激情,国产精品| 亚洲国产精品成人久久综合影院 | 国产h视频免费观看| 国产美女91视频| 免费日韩在线视频| 原味小视频在线www国产| 国产成人亚洲无吗淙合青草| 亚洲高清资源| 日韩中文无码av超清| 青青操国产| 手机成人午夜在线视频| 日韩精品无码不卡无码|