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

        ?

        Python多法生成“相異”隨機(jī)數(shù)

        2021-06-25 22:18:32牟曉東
        電腦報(bào) 2021年1期
        關(guān)鍵詞:列表整數(shù)語(yǔ)句

        牟曉東

        眾所周知,Python語(yǔ)言非常靈活,有著功能極為強(qiáng)大的標(biāo)準(zhǔn)庫(kù)和第三方的不斷支持,在進(jìn)行各種數(shù)據(jù)的處理時(shí)非常方便。有時(shí)在編程解決同一個(gè)問(wèn)題時(shí)會(huì)有多種編寫(xiě)方法,代碼的簡(jiǎn)潔性和程序的運(yùn)行效率各不相同。如果要求編程生成50個(gè)1000以?xún)?nèi)(包括0和1000)各不相同的隨機(jī)整數(shù),如何來(lái)求解呢?在此與大家共享三種方法:

        1.列表元素的append()追加方法

        該方法是最為常規(guī)的編程方法,尤其是在學(xué)習(xí)過(guò)其他編程語(yǔ)言(比如C)之后,可以這樣來(lái)操作:

        首先是通過(guò)“import random”來(lái)導(dǎo)入random庫(kù)模塊,因?yàn)槌绦蛑幸褂胷andom.randint()來(lái)生成隨機(jī)數(shù);接著建立一個(gè)名為aList的空列表,進(jìn)入條件為真的循環(huán)結(jié)構(gòu)(while True:)中,邏輯判斷條件為“if len(aList) == 50:”,意思是使用len()函數(shù)求出列表aList內(nèi)元素的個(gè)數(shù)是否為50個(gè),是的話則使用break語(yǔ)句跳出整個(gè)循環(huán)結(jié)構(gòu);否則的話,執(zhí)行“num = random.randint(0,1000)”語(yǔ)句,也就是將0至1000以?xún)?nèi)(包括0和1000)的某個(gè)隨機(jī)整數(shù)賦值給變量num;然后又通過(guò)一個(gè)if條件判斷語(yǔ)句“if num not in aList:”,檢索一下該num值是否“不存在于列表aList中”,不存在的話則執(zhí)行“aList.append(num)”語(yǔ)句,作用是將該num值通過(guò)列表元素的append()方法“追加”于列表aList中;如果該num值已經(jīng)生成在列表aList中,則繼續(xù)下一次循環(huán);while循環(huán)結(jié)束后,此時(shí)列表aList中已經(jīng)保存了50個(gè)1000以?xún)?nèi)的隨機(jī)整數(shù),最后使用print語(yǔ)句將它們逐個(gè)打印輸出,一共是9行Python代碼(如圖1)。

        2.集合元素的add()追加方法

        Python的序列元素種類(lèi)比較豐富,像列表、元組、字典、字符串、集合等等,各有各的特點(diǎn)和適用場(chǎng)合。比如Python集合的特點(diǎn)之一就是其中各元素的相異性,就是一個(gè)集合中不允許存在完全相同的“兩個(gè)”元素,各元素都是唯一的。根據(jù)集合的這一特點(diǎn),我們就可以通過(guò)以下代碼來(lái)編程求解“相異”隨機(jī)數(shù):

        首先通過(guò)“from random import randint”語(yǔ)句導(dǎo)入random庫(kù)模塊中的randint;接著通過(guò)“bSet = set()”語(yǔ)句建立空集合bSet,同樣也是進(jìn)入一個(gè)while循環(huán),其邏輯判斷條件是“while len(bSet)<50:”,意思是檢查集合bSet中元素的個(gè)數(shù)是否小于50;條件成立的話,則執(zhí)行“bSet.add(randint(0,1000))”語(yǔ)句,也就是通過(guò)集合的add()元素添加方法將生成的一個(gè)1000以?xún)?nèi)的隨機(jī)整數(shù)添加到集合bSet中;注意該語(yǔ)句在執(zhí)行操作時(shí),如果恰好某次循環(huán)時(shí)生成的某個(gè)隨機(jī)整數(shù)已經(jīng)在之前的循環(huán)中生成并保存于集合bSet內(nèi),那么本次操作就不會(huì)將這個(gè)相同的元素添加到集合bSet中;最后仍然是使用print語(yǔ)句來(lái)打印輸出集合bSet內(nèi)保存的50個(gè)相異的隨機(jī)整數(shù),一共是5行Python代碼(如圖2)。

        3.random.sample()函數(shù)方法

        第三種方法更為簡(jiǎn)潔,充分利用了random庫(kù)模塊中的一個(gè)名為random.sample()的函數(shù),其作用是截取列表指定長(zhǎng)度的隨機(jī)整數(shù),返回的是一個(gè)指定長(zhǎng)度的新列表,其中的元素是隨機(jī)唯一的。編程如下:

        首先仍然是import random語(yǔ)句;接著建立列表cList,為其賦值為“random.sample(range(0,1000),50)”,意思取50個(gè)0至1000以?xún)?nèi)的隨機(jī)整數(shù),作為一個(gè)“片斷”返回;最后通過(guò)print語(yǔ)句打印輸出cList的元素,僅僅是3行Python代碼(如圖3)。

        如果你使用Spyder,那么觀察右上方的“變量管理器”也不難發(fā)現(xiàn),通過(guò)這三種方法分別會(huì)生成列表aList、集合bSet和列表cList,各自保存的元素均是50個(gè)1000以?xún)?nèi)的隨機(jī)整數(shù)。num是第一種方法中為列表aList生成各隨機(jī)整數(shù)的“中間變量”,其類(lèi)型是整型int。

        猜你喜歡
        列表整數(shù)語(yǔ)句
        巧用列表來(lái)推理
        學(xué)習(xí)運(yùn)用列表法
        重點(diǎn):語(yǔ)句銜接
        擴(kuò)列吧
        一類(lèi)整數(shù)遞推數(shù)列的周期性
        精彩語(yǔ)句
        聚焦不等式(組)的“整數(shù)解”
        不含3-圈的1-平面圖的列表邊染色與列表全染色
        如何搞定語(yǔ)句銜接題
        作文語(yǔ)句實(shí)錄
        亚洲人成无码网站久久99热国产| 国内久久婷婷六月综合欲色啪| av无码一区二区三区| 无遮无挡爽爽免费视频| 91久久精品无码人妻系列 | 久久精品国产亚洲av麻豆会员| 国产盗摄xxxx视频xxxx| 四虎影视国产在线观看精品| 国产优质女主播在线观看| 日本久久精品视频免费| 插我一区二区在线观看| 暖暖免费 高清 日本社区在线观看 | 免费黄网站永久地址进入| 久久99精品久久久久麻豆| 中文字幕精品一区二区2021年| 在线观看网址你懂的| 久久亚洲精品中文字幕蜜潮 | 大香蕉久久精品一区二区字幕| 在线播放草猛免费视频| 国自产精品手机在线观看视频| 91高清国产经典在线观看| 国产毛片一区二区三区| 国产香蕉一区二区三区在线视频| av中文字幕少妇人妻| 亚洲欧洲日产国码无码久久99| 九九精品无码专区免费| 亚洲av自偷自拍亚洲一区| 精品国产粉嫩内射白浆内射双马尾| 无码精品人妻一区二区三区人妻斩| 永久免费看免费无码视频| 国产黄色一级大片一区二区| 乱码1乱码2美美哒| 欧美高大丰满freesex| 国产高清亚洲精品视频| 日韩人妻中文字幕高清在线| 国产裸拍裸体视频在线观看| 九色91精品国产网站| 国产自拍一区二区三区| 欧美老妇多毛xxxxx极瑞视频| 日韩视频第二页| 国产一级黄片久久免费看|