在這篇文章中,我將向您解釋如何用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部落 的文章