• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      四種Python均勻浮點(diǎn)數(shù)生成方法

      2021-07-01 08:26:31牟曉東
      電腦報(bào) 2021年11期
      關(guān)鍵詞:浮點(diǎn)數(shù)列表步長(zhǎng)

      牟曉東

      眾所周知,在Python中可構(gòu)造“for i in range(100):”語(yǔ)句來(lái)執(zhí)行100次循環(huán),因?yàn)椤皉ange(100)”就相當(dāng)于“range(0,100,1)”,是以1為步長(zhǎng)、左閉(包括0)右開(不包括100)的;如果在該循環(huán)中被執(zhí)行的語(yǔ)句是“print(i,end=‘ )”的話,那就會(huì)打印輸出0、1、2……98、99共100個(gè)整數(shù)。按照這個(gè)辦法是否可以使用range()函數(shù)來(lái)生成類似的均勻浮點(diǎn)數(shù)呢?比如0.00、0.01、0.02……0.98、0.99共100個(gè)浮點(diǎn)數(shù)。如果直接構(gòu)造“for i in range(0,1,0.01):”,Python就會(huì)給出“TypeError: ‘float object cannot be interpreted as an integer”的錯(cuò)誤提示,意思是“類型錯(cuò)誤:浮點(diǎn)型對(duì)象不能解釋為整數(shù)型”,因?yàn)閞ange()函數(shù)接收的參數(shù)必須是整數(shù)(可以是負(fù)數(shù)),而不能直接處理float浮點(diǎn)數(shù)。那么,如何解決均勻浮點(diǎn)數(shù)生成問(wèn)題呢?

      方法1:while循環(huán)控制變量i自增

      首先建立并給變量i賦值為0.00;接著構(gòu)造“while i <= 1.00:”循環(huán),其中的第一條語(yǔ)句為“print(‘%.2f%i,end=‘ )”,即以一個(gè)空格分隔并保留兩位小數(shù)輸出變量i的值;第二條語(yǔ)句為“i += 0.01”,即控制i的自增,步長(zhǎng)為0.01。運(yùn)行程序,得到了從0.00到0.99共100個(gè)均勻浮點(diǎn)數(shù)(如圖1)。

      方法2:使用列表推導(dǎo)式

      Python的列表推導(dǎo)式非常靈活,能夠以非常簡(jiǎn)潔的方式來(lái)快速生成滿足特定需求的列表。比如直接使用一條“my_list = [i/100 for i in range(100)]”語(yǔ)句,即可在列表my_list中得到符合要求的100個(gè)浮點(diǎn)數(shù),其實(shí)就是將“for i in range(100)”所得到的0-99分別進(jìn)行了“i/100”的計(jì)算。最后再使用for循環(huán)以同樣的方式來(lái)打印輸出,同樣也得到了100個(gè)均勻浮點(diǎn)數(shù),print中的“‘%.2f%”表示顯示保留兩位小數(shù)的浮點(diǎn)數(shù)(如圖2)。

      方法3:借用numpy庫(kù)中的arange()

      numpy庫(kù)中有個(gè)與Python的range()函數(shù)功能類似的arange(),但它支持浮點(diǎn)數(shù)運(yùn)算且使用方法類似,一樣是“初始值、終值、步長(zhǎng)”參數(shù)調(diào)用。在使用“import numpy as np”語(yǔ)句以np為別名導(dǎo)入numpy庫(kù)之后,再使用“my_list = list(np.arange(0,1,0.01))”語(yǔ)句,即可將arange()生成的ndarray數(shù)組對(duì)象轉(zhuǎn)換為列表數(shù)據(jù)。最后,使用for循環(huán)打印輸出my_list中的所有元素,就得到了100個(gè)均勻浮點(diǎn)數(shù),本次保留3位小數(shù)(如圖3)。

      方法4:自定義函數(shù)使用yield表達(dá)式

      既然Python內(nèi)置的range()函數(shù)不提供對(duì)浮點(diǎn)數(shù)的運(yùn)算,那我們就可以自定義一個(gè)float_data()函數(shù),三個(gè)參數(shù)依次為start、end和step,同樣是對(duì)應(yīng)“初始值、終值、步長(zhǎng)”。函數(shù)中使用變量i來(lái)接收初始值,然后通過(guò)while循環(huán)(當(dāng)i

      在主程序中調(diào)用float_data()函數(shù),接收到的數(shù)據(jù)存儲(chǔ)至變量my_generator中,最后仍然是通過(guò)for循環(huán)來(lái)將它們打印輸出,也可以得到100個(gè)均勻浮點(diǎn)數(shù)(如圖4)。

      四種方法均能實(shí)現(xiàn)均勻浮點(diǎn)數(shù)的生成,大家可根據(jù)自己的編程習(xí)慣來(lái)使用。當(dāng)然,如果想生成的是0.000、0.001、0.002……0.999這樣的千分位均勻浮點(diǎn)數(shù),只要在程序中將步長(zhǎng)修改為0.001、print輸出“%.3f”以及方法2中將“i/100”修改為“i/1000”即可。

      猜你喜歡
      浮點(diǎn)數(shù)列表步長(zhǎng)
      巧用列表來(lái)推理
      基于Armijo搜索步長(zhǎng)的BFGS與DFP擬牛頓法的比較研究
      學(xué)習(xí)運(yùn)用列表法
      擴(kuò)列吧
      在C語(yǔ)言中雙精度浮點(diǎn)數(shù)線性化相等比較的研究
      非精確浮點(diǎn)數(shù)乘法器設(shè)計(jì)
      基于逐維改進(jìn)的自適應(yīng)步長(zhǎng)布谷鳥搜索算法
      一種新型光伏系統(tǒng)MPPT變步長(zhǎng)滯環(huán)比較P&O法
      不含3-圈的1-平面圖的列表邊染色與列表全染色
      一種新穎的光伏自適應(yīng)變步長(zhǎng)最大功率點(diǎn)跟蹤算法
      垣曲县| 沙洋县| 德钦县| 嵩明县| 辽宁省| 芜湖县| 若尔盖县| 勃利县| 大荔县| 乐东| 连山| 都江堰市| 泰和县| 连山| 莎车县| 莒南县| 建始县| 利津县| 南川市| 五指山市| 云浮市| 广灵县| 广安市| 留坝县| 红安县| 曲麻莱县| 东方市| 股票| 洛南县| 依兰县| 五常市| 喀什市| 汾阳市| 清远市| 平安县| 体育| 西宁市| 香港| 哈巴河县| 正宁县| 舞钢市|