欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

控制Python浮點(diǎn)數(shù)輸出位數(shù)的操作方法

 更新時(shí)間:2022年04月16日 08:24:27   作者:DECHIN  
在python的輸出結(jié)果中,尤其是浮點(diǎn)數(shù)的輸出,當(dāng)我們需要寫入文本文件時(shí),最好是采用統(tǒng)一的輸出格式,這樣也能夠增強(qiáng)結(jié)果的可讀性,這篇文章主要介紹了控制Python浮點(diǎn)數(shù)輸出位數(shù)的方法,需要的朋友可以參考下

在python的輸出結(jié)果中,尤其是浮點(diǎn)數(shù)的輸出,當(dāng)我們需要寫入文本文件時(shí),最好是采用統(tǒng)一的輸出格式,這樣也能夠增強(qiáng)結(jié)果的可讀性。而對(duì)于浮點(diǎn)數(shù)輸出位數(shù)的控制,可以通過{:.4f}、%.4f來指定打印或者輸出時(shí)的字符串占據(jù)空間,也可以通過round函數(shù)來對(duì)輸出前的結(jié)果進(jìn)行轉(zhuǎn)化。而如果是取有效數(shù)字,需要用到{:.4},這幾種方法沒有優(yōu)劣,只有看不同的場(chǎng)景,選取不同的精度控制方案。

技術(shù)背景

在Python的一些長效任務(wù)中,不可避免的需要向文本文件、二進(jìn)制文件或者數(shù)據(jù)庫中寫入一些數(shù)據(jù),或者是在屏幕上輸出一些文本,此時(shí)如何控制輸出數(shù)據(jù)的長度是需要我們注意的一個(gè)問題。比如對(duì)于一個(gè)二進(jìn)制文件,如果輸出的浮點(diǎn)數(shù)長度一直在發(fā)生變化,則寫入到文件之后,讀取的人按照比特位進(jìn)行讀取就會(huì)讀到一堆錯(cuò)誤的數(shù)據(jù)。因此,我們需要控制輸出位數(shù),尤其是浮點(diǎn)數(shù)要格外小心。

常規(guī)控制方法

一般情況下,我們可以通過round來設(shè)置輸出浮點(diǎn)數(shù)的有效數(shù)字,其原理是對(duì)于一個(gè)給定的浮點(diǎn)數(shù)直接取前n位的有效數(shù)字,后續(xù)的數(shù)字四舍五入。而%.4f{:.4f}這兩種格式化,是在輸出時(shí)取小數(shù)點(diǎn)后4位打印,跟先取有效數(shù)字再打印是不一樣的,后面會(huì)提到。先看下這幾個(gè)方式的輸出異同點(diǎn):

In [1]: pi_10=31.415926

In [2]: print (round(pi_10,4))
31.4159

In [3]: print ('%.4f' % pi_10)
31.4159

In [4]: print ('{:.4f}'.format(pi_10))
31.4159

上面的例子是小數(shù)點(diǎn)前和小數(shù)點(diǎn)后都有多位數(shù)字,另外類似的可以看下小數(shù)點(diǎn)前只有0的數(shù)字的輸出結(jié)果:

In [5]: pi_10=0.31415926
In [6]: print (round(pi_10,4))
0.3142
In [7]: print ('{:.4f}'.format(pi_10))
0.3142
In [8]: print ('%.4f' % pi_10)
0.3142

在上面的兩個(gè)案例中,我們發(fā)現(xiàn)三者的輸出結(jié)果都是一樣的。但是前面提到了先取有效數(shù)字再輸出,跟先輸出再取有效數(shù)字的區(qū)別,可以通過下面的一個(gè)案例體現(xiàn)出來:

In [9]: pi_10=3.1415926E-08
In [10]: print (round(pi_10,4))
0.0
In [11]: print ('{:.4f}'.format(pi_10))
0.0000
In [12]: print ('%.4f' % pi_10)
0.0000

這里的輸入是一個(gè)小數(shù)點(diǎn)后有很多0的浮點(diǎn)數(shù),但是這里用的是科學(xué)計(jì)數(shù)法,也就是\(3.1415926*10^{-8}\),此時(shí)我們用這三種輸出方式,得到的結(jié)果全都是0,而且第一種方案更是直接小數(shù)點(diǎn)后都沒滿4位。這是因?yàn)樵谟胷ound取有效數(shù)字時(shí),發(fā)現(xiàn)小數(shù)點(diǎn)后的數(shù)字太多,把當(dāng)前的浮點(diǎn)數(shù)直接當(dāng)成了0.0而不是0.0000,而后面兩個(gè)方案的過程更像是在打印出來這個(gè)數(shù)字之后,再把超過有效位數(shù)的數(shù)字去掉,因此會(huì)保留小數(shù)點(diǎn)后的4個(gè)0。但是,即使如此,得到的結(jié)果也不是我們所想要的結(jié)果。因?yàn)檫@個(gè)數(shù)字雖然很小,但是可能只是由于單位問題,并不代表這個(gè)數(shù)字產(chǎn)生的影響就是0,因此直接用這種取小數(shù)點(diǎn)后有效數(shù)字的方法可能會(huì)出問題。

取有效數(shù)字

這里我們要介紹的取有效數(shù)字的方法,不再是去小數(shù)點(diǎn)后的有效數(shù)字,而是整體的有效數(shù)字。方法也很簡單,就是把上一個(gè)章節(jié)中的{:.4f}改成{:.4},同樣的可以通過這么幾個(gè)案例來理解控制有效數(shù)字的結(jié)果:

In [13]: pi_10=3.1415926E-08
In [14]: print ('{:.4}'.format(pi_10))
3.142e-08
In [15]: pi_10=0.31415926
In [16]: print ('{:.4}'.format(pi_10))
0.3142
In [17]: pi_10=31.415926
In [18]: print ('{:.4}'.format(pi_10))
31.42

我們發(fā)現(xiàn),輸出的結(jié)果會(huì)根據(jù)輸入的格式改變而改變,如果輸入的小數(shù)位0過多,輸出結(jié)果會(huì)被自動(dòng)轉(zhuǎn)換成科學(xué)計(jì)數(shù)法。而不僅僅是針對(duì)浮點(diǎn)數(shù),{:.4}還可以作用在字符串中,效果如下:

In [19]: string='Hello World!'

In [20]: print ('{:.4}'.format(string))
Hell

總結(jié)概要

在python的輸出結(jié)果中,尤其是浮點(diǎn)數(shù)的輸出,當(dāng)我們需要寫入文本文件時(shí),最好是采用統(tǒng)一的輸出格式,這樣也能夠增強(qiáng)結(jié)果的可讀性。而對(duì)于浮點(diǎn)數(shù)輸出位數(shù)的控制,可以通過{:.4f}、%.4f來指定打印或者輸出時(shí)的字符串占據(jù)空間,也可以通過round函數(shù)來對(duì)輸出前的結(jié)果進(jìn)行轉(zhuǎn)化。而如果是取有效數(shù)字,需要用到{:.4},這幾種方法沒有優(yōu)劣,只有看不同的場(chǎng)景,選取不同的精度控制方案。

版權(quán)聲明

本文首發(fā)鏈接為:https://www.cnblogs.com/dechinphy/p/fprint.html

作者ID:DechinPhy

更多原著文章請(qǐng)參考:https://www.cnblogs.com/dechinphy/

打賞專用鏈接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

騰訊云專欄同步:https://cloud.tencent.com/developer/column/91958

到此這篇關(guān)于控制Python浮點(diǎn)數(shù)輸出位數(shù)的文章就介紹到這了,更多相關(guān)Python浮點(diǎn)數(shù)輸出位數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用python批量生成insert語句的方法

    使用python批量生成insert語句的方法

    很多時(shí)候需要造數(shù)據(jù),大量的插入數(shù)據(jù),本文介紹了使用python批量生成insert語句的方法,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 便捷提取python導(dǎo)入包的屬性方法

    便捷提取python導(dǎo)入包的屬性方法

    今天小編就為大家分享一篇便捷提取python導(dǎo)入包的屬性方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python簡直是萬能的,這5大主要用途你一定要知道!(推薦)

    Python簡直是萬能的,這5大主要用途你一定要知道?。ㄍ扑])

    這篇文章主要介紹了Python主要用途,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python防止隨意修改類屬性的實(shí)現(xiàn)方法

    python防止隨意修改類屬性的實(shí)現(xiàn)方法

    這篇文章主要介紹了python防止隨意修改類屬性的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python工廠模式實(shí)現(xiàn)封裝Webhook群聊機(jī)器人詳解

    Python工廠模式實(shí)現(xiàn)封裝Webhook群聊機(jī)器人詳解

    企業(yè)存在給 特定群組 自動(dòng)推送消息的需求,你可以在群聊中添加一個(gè)自定義機(jī)器人,通過服務(wù)端調(diào)用 webhook 地址,即可將外部系統(tǒng)的通知消息即時(shí)推送到群聊中。本文就來和大家聊聊具體實(shí)現(xiàn)方法
    2023-02-02
  • 教你利用Selenium+python自動(dòng)化來解決pip使用異常

    教你利用Selenium+python自動(dòng)化來解決pip使用異常

    今天帶大家來學(xué)習(xí)怎么利用Selenium+python自動(dòng)化解決pip使用異常,文中介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)python的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-05-05
  • Python中處理表格數(shù)據(jù)的Tablib庫詳解

    Python中處理表格數(shù)據(jù)的Tablib庫詳解

    這篇文章主要介紹了Python中處理表格數(shù)據(jù)的Tablib庫詳解,Tablib 是一個(gè) MIT 許可的格式不可知的表格數(shù)據(jù)集庫,用 Python 編寫,它允許您導(dǎo)入、導(dǎo)出和操作表格數(shù)據(jù)集,需要的朋友可以參考下
    2023-08-08
  • python openpyxl打開文件關(guān)閉問題

    python openpyxl打開文件關(guān)閉問題

    這篇文章主要介紹了python openpyxl打開文件關(guān)閉問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python為人臉照片添加口罩實(shí)戰(zhàn)

    Python為人臉照片添加口罩實(shí)戰(zhàn)

    本文主要介紹了Python為人臉照片添加口罩實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • pytorch張量和numpy數(shù)組相互轉(zhuǎn)換

    pytorch張量和numpy數(shù)組相互轉(zhuǎn)換

    在使用pytorch作為深度學(xué)習(xí)的框架時(shí),經(jīng)常會(huì)遇到張量tensor和矩陣numpy的類型的相互轉(zhuǎn)化的問題,本文主要介紹了pytorch張量和numpy數(shù)組相互轉(zhuǎn)換,感興趣的可以了解一下
    2024-02-02

最新評(píng)論