亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        四種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)右開(kāi)(不包括100)的;如果在該循環(huán)中被執(zhí)行的語(yǔ)句是“print(i,end=‘ )”的話(huà),那就會(huì)打印輸出0、1、2……98、99共100個(gè)整數(shù)。按照這個(gè)辦法是否可以使用range()函數(shù)來(lái)生成類(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ò)誤提示,意思是“類(lèi)型錯(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)快速生成滿(mǎn)足特定需求的列表。比如直接使用一條“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ù)功能類(lèi)似的arange(),但它支持浮點(diǎn)數(shù)運(yùn)算且使用方法類(lèi)似,一樣是“初始值、終值、步長(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ù)線(xiàn)性化相等比較的研究
        非精確浮點(diǎn)數(shù)乘法器設(shè)計(jì)
        基于逐維改進(jìn)的自適應(yīng)步長(zhǎng)布谷鳥(niǎo)搜索算法
        一種新型光伏系統(tǒng)MPPT變步長(zhǎng)滯環(huán)比較P&O法
        不含3-圈的1-平面圖的列表邊染色與列表全染色
        一種新穎的光伏自適應(yīng)變步長(zhǎng)最大功率點(diǎn)跟蹤算法
        一本色道久久亚洲加勒比| 99久久超碰中文字幕伊人| 蜜桃一区二区免费视频观看 | 今井夏帆在线中文字幕| 粉嫩av国产一区二区三区 | 香蕉色香蕉在线视频| 中文乱码字幕在线中文乱码| 亚洲精品一区三区三区在线| 亚欧色一区w666天堂| 黄色资源在线观看| 成在线人免费视频播放| 亚洲国产综合久久天堂| 精品久久久无码中字| 国产在线不卡AV观看| 久久久一本精品久久久一本| 人妖一区二区三区四区| 熟妇高潮一区二区三区| 国产一区二区精品久久凹凸| 日本女优久久精品观看| 亚洲av成人无码一区二区三区在线观看| 国产嫖妓一区二区三区无码| 亚洲中文字幕日产喷水| 免费人成网站在线视频| 四川发廊丰满老熟妇| 国产自精品| 亚洲不卡毛片在线观看| 亚洲国产成人精品无码区在线播放| 8ⅹ8x擦拨擦拨成人免费视频| 国产一区二区三区国产精品| 亚洲不卡av一区二区三区四区| 国产精品无码无在线观看| 欧美激情五月| 亚洲综合av一区在线| 国产极品视觉盛宴| 亚洲av无码一区二区乱子伦| 国产精品一级av一区二区| 亚洲乱码中文字幕在线播放| 无码成人aaaaa毛片| 无码视频一区二区三区在线播放| 成人影院在线观看视频免费 | 40分钟永久免费又黄又粗|