當前位置:
首頁 > 知識 > python如何生成一系列浮點數(含例子)

python如何生成一系列浮點數(含例子)


在這篇文章中,我將向您解釋

如何用

python生成一系列

浮點數

。我已經用python寫了幾個示例,演示了如何在自定義range()函數的start,stop和step參數中使用浮點數來列印一系列浮點數。


在這篇文章中提到的例子適用於python的所有版本即python3和python2。

在舉例之前先去了解一下現有的range()函數處理浮點值的局限性吧。



Python的一系列浮點數


內容列表


1.python的range()函數的局限性


2.在Python中使用numpy的arange()函數去生成一系列浮點數


3.不使用任何的庫或模塊用Python生成一系列浮點數


3.1.frange()函數來返回兩個浮點數之間的一系列浮點值


4.使用Python Generator生成一系列浮點數


4.1.使用生成器生成一系列僅正浮點數的程序

4.2.使用生成器生成一些列僅負浮點數的程序


5.在range()函數的step參數中使用浮點數


6.在range函數中使用浮點數的其它實例


6.1.使用Scipy生成一系列浮點數


6.2.Python中使用迭代工具生成一系列浮點數


python的range()函數的局限性


你必須知道Python range()函數和它的使用方法。Python的range()函數最普遍的用法是在給定的開始整型數到結束整型數之間生成數字。


Python的range()函數的局限性主要是它只適用於整型數。


Python的range()函數不支持浮點類型即我們不能在它的任何參數中(即start,stop,step)使用浮點數或者非整型數。


舉個例子,讓我們來看下面的源代碼。在這個代碼中,我們嘗試去在python使用列印兩個浮點數之間的一系列數字。


如果你嘗試執行上面的代碼,Python將引發一個類型錯誤:"float" object cannot be interpreted as an intege。即python的range()函數中浮點數不能解釋為一個整數。


那麼如何在python中生成一系列浮點數呢?


有多種多樣的方法去實現。讓我們一一舉例說明。



在Python中使用numpy的arange()函數去生成一系列浮點數。


你可以使用Python編程語言的numpy模塊來列印一系列浮點數。


       · NumPy庫有許多數值函數和數學函數來處理多維數組和矩陣。


       · NumPy不是python標準庫的一部分(即它不會伴隨python默認安裝)但是相對容易安裝和使用。


那麼numpy庫的哪些函數能生成一系列非整型數字?

NumPy擁有arange()函數來得到開始和結束兩個浮點數之間的浮點數。


arange()函數具有和python range()函數一樣的語法和功能。


此外,他的所有參數還支持浮點數。即我們可以給start,stop和step參數傳遞浮點數。


Numpy的arange()函數的語法:



你需要使用pip安裝numpy模塊以使用這個函數。



讓我們用下面這個實例演示一下。



輸出:


你也可以使用numpy的lincespae()函數來實現相同的功能。


但是主要問題是numpy是一個第三方庫並且增加了依賴性管理、存儲方面的開銷(對於軟體包本身),尤其是當你想要去使用arange()函數時。


因此一些人不想僅僅為了這個用numpy或者其它庫。你可以編寫自己的的函數來生成一系列浮點數。我已經舉了這樣的例子。


不使用任何的庫或模塊用Python生成一系列浮點數


我已經使用簡單的邏輯寫了一個代碼樣品來生成一系列浮點數。這個代碼正浮點數和負浮點數都適用。


這個程序分為2部分。第一部分包括函數frange()。另一部分包括用下面的方法使用浮點數測試frange()函數。


       1.在range()的參數中使用正浮點值。


       2.在range()的參數中使用負浮點值。


       3.在frange()參數中使用正數和負數步長值。

       4.用相反的順序顯示一系列浮點數。


我們使用for循環來迭代一系列浮點數。


frange()函數來返回兩個浮點數之間的一系列浮點值



輸出:


在執行完上面提到的所有代碼後你應該得到下面的輸出。



使用Python Generator生成一系列浮點數


你可以像python的range()函數一樣定義一個生成器即range(start, stop, step)接受浮點數或者分數並且輸出數字。在這個例子中我為正值使用+或者<,為負值使用-和>。


我為正浮點數步長和負浮點數步長創造了兩個單獨的函數frange()。

使用生成器生成一系列僅正浮點數的程序



輸出:



使用生成器生成一系列僅負浮點數的程序



輸出:



在range()函數的step參數中使用浮點數


像整數的step值一樣,我們可以在我們定製的range()函數中使用浮點數step值。我們可以使用浮點數step生成一個特殊間隔的浮點數。讓我們用一個例子看一下如何在pyhton的range()函數中使用浮點數step。在這個例子中,step值為2.5。


你應該得到下面的輸出:



在range函數中使用浮點數的其它實例


下面的代碼對於不太熟悉python的同學很有用。



讓我們運行上面的代碼來得到一系列正小數和負小數。


輸出:



用Scipy生成一系列浮點數

Scipy有一個內建函數arange(),它泛化了Python的range()構造器去處理浮點數。實際上你可以發現它和numpy的arange()函數一樣準確。



Python中使用迭代工具生成一系列浮點數



輸出:





英文原文:https://pynative.com/python-range-for-float-numbers/


譯者:嘉興



喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python程序員 的精彩文章:

Vim是從何而來:智慧積累的偉大力量
提高Python程序性能的七個習慣

TAG:Python程序員 |