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

        ?

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

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

        牟曉東

        眾所周知,在Python中可構(gòu)造“for i in range(100):”語句來執(zhí)行100次循環(huán),因?yàn)椤皉ange(100)”就相當(dāng)于“range(0,100,1)”,是以1為步長、左閉(包括0)右開(不包括100)的;如果在該循環(huán)中被執(zhí)行的語句是“print(i,end=‘ )”的話,那就會(huì)打印輸出0、1、2……98、99共100個(gè)整數(shù)。按照這個(gè)辦法是否可以使用range()函數(shù)來生成類似的均勻浮點(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ù)生成問題呢?

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

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

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

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

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

        numpy庫中有個(gè)與Python的range()函數(shù)功能類似的arange(),但它支持浮點(diǎn)數(shù)運(yùn)算且使用方法類似,一樣是“初始值、終值、步長”參數(shù)調(diào)用。在使用“import numpy as np”語句以np為別名導(dǎo)入numpy庫之后,再使用“my_list = list(np.arange(0,1,0.01))”語句,即可將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)“初始值、終值、步長”。函數(shù)中使用變量i來接收初始值,然后通過while循環(huán)(當(dāng)i

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

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

        猜你喜歡
        浮點(diǎn)數(shù)列表步長
        巧用列表來推理
        基于Armijo搜索步長的BFGS與DFP擬牛頓法的比較研究
        學(xué)習(xí)運(yùn)用列表法
        擴(kuò)列吧
        在C語言中雙精度浮點(diǎn)數(shù)線性化相等比較的研究
        非精確浮點(diǎn)數(shù)乘法器設(shè)計(jì)
        基于逐維改進(jìn)的自適應(yīng)步長布谷鳥搜索算法
        一種新型光伏系統(tǒng)MPPT變步長滯環(huán)比較P&O法
        不含3-圈的1-平面圖的列表邊染色與列表全染色
        一種新穎的光伏自適應(yīng)變步長最大功率點(diǎn)跟蹤算法
        在线亚洲精品国产成人二区| 亚洲日韩av无码| 日日噜噜夜夜狠狠久久无码区| 欧美一区二区午夜福利在线yw| 亚洲av色香蕉第一区二区三区| 亚洲永久国产中文字幕| 人与动牲交av免费| 国产成人精品电影在线观看18| 国内精品九九久久精品小草| 国产精品大片一区二区三区四区| 伊人久久大香线蕉av色| 欧美大香线蕉线伊人久久| 国产一区二区a毛片色欲| 亚洲人成精品久久熟女| 中文字幕精品一区二区精品 | 青青草原综合久久大伊人精品| 精品水蜜桃久久久久久久| 亚洲AV伊人久久综合密臀性色| 国产一区二区一级黄色片| 先锋影音人妻啪啪va资源网站| 国产男女猛烈视频在线观看| 国产一区二区丰满熟女人妻| 国成成人av一区二区三区| 久久99精品久久久久婷婷| 国产乱子伦一区二区三区| 国产精品无码久久久久下载| 免费在线视频亚洲色图| 国产乱人激情h在线观看| 中文字幕日韩高清| 国产精品久久国产三级国| 爽爽影院免费观看| 最近日本中文字幕免费完整 | 精品久久久久久综合日本| 一本大道久久东京热无码av| 国产成人久久精品77777综合| 国产精品熟女视频一区二区三区 | 情人伊人久久综合亚洲| 亚洲国产AV无码男人的天堂| 性感人妻av在线播放| 老熟妇乱子伦牲交视频| 热re99久久精品国产99热|