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

        ?

        Python五種“隨機(jī)抽獎”方法

        2021-07-07 06:32:07牟曉東
        電腦報(bào) 2021年16期
        關(guān)鍵詞:抽獎列表整數(shù)

        牟曉東

        “隨機(jī)抽獎”例題:假設(shè)要從10000個人中隨機(jī)抽取出10人作為“中獎?wù)摺?,每人對?yīng)一個0-9999中的整數(shù),要求使用Python編程按從小到大的順序輸出中獎?wù)邤?shù)字代號。類似的“隨機(jī)抽獎”程序一般均需要先導(dǎo)入random(隨機(jī))模塊,然后借助其中的randint()、shuffle()和sample()等函數(shù)進(jìn)行隨機(jī)數(shù)的選取,最后使用列表或集合對數(shù)據(jù)進(jìn)行存儲、排序和輸出。

        法1:randint()生成隨機(jī)整數(shù)后進(jìn)行in成員運(yùn)算判斷

        首先,通過“import random”導(dǎo)入random模塊(下同);接著,建立空列表“my_list1 = []”;建立while循環(huán)結(jié)構(gòu),判斷條件為“l(fā)en(my_list1) <= 10”,即列表my_list1中元素的個數(shù)達(dá)到10為止(通過len()檢測列表的長度);在循環(huán)體中,第一條語句為“x = random.randint(0,9999)”,變量x取值為0-9999中的隨機(jī)某個整數(shù)(包括0和9999);條件判斷語句“if x not in my_list1”的作用是,查看生成的隨機(jī)數(shù)x是否在列表my_list1中,防止多次生成的隨機(jī)數(shù)中有重復(fù)值出現(xiàn);如果不重復(fù),則使用append()方法將x追加到列表my_list1中:“my_list1.append(x)”;當(dāng)循環(huán)結(jié)束時,列表my_list1中就會保存有10個0-9999間的不重復(fù)數(shù)據(jù)。最后,通過sorted()函數(shù)對列表my_list1進(jìn)行默認(rèn)參數(shù)排序(升序):“my_list2 = sorted(my_list1)”,得到的列表my_list2就是從小到大順序中獎號碼,再使用print()輸出結(jié)果即可。

        運(yùn)行程序,得到了10個“中獎”號碼(如圖1)。

        法2:randint()生成隨機(jī)整數(shù)后存入集合“去重”

        與法1類似,只不過是使用集合而非列表來存儲生成的隨機(jī)數(shù):“my_set = set()”,建立一個空集合;接著,仍然是在while循環(huán)中,通過randint生成0-9999間的某隨機(jī)數(shù),將它追加到集合my_set中。由于集合中的元素是不可能存在重復(fù)數(shù)據(jù)的,因此不必像法1中的列表元素進(jìn)行in成員運(yùn)算判斷,相當(dāng)于直接進(jìn)行了“去重”操作。循環(huán)結(jié)束后,仍然是使用sorted()函數(shù)進(jìn)行排序并保存至列表my_list中,進(jìn)行print打印輸出(如圖2)。

        法3:shuffle()隨機(jī)排序后進(jìn)行“切片”

        首先建立列表my_list1,其值為“l(fā)ist(range(10000))”,通過list()將0至9999共10000個數(shù)據(jù)保存至列表my_list1中;接著使用random中的shuffle(),將列表my_list1中的數(shù)據(jù)進(jìn)行隨機(jī)排序:“random.shuffle(my_list1)”;然后對列表my_list1進(jìn)行切片操作,任意截取出10個數(shù)據(jù),比如“my_list1[:10]”是指從索引的第0個切至第9個(當(dāng)然也可以使用“my_list2 = my_list1[99:109]”,意思是從第99個切至第109個),將它們存入列表my_list2中;仍然是使用sorted()函數(shù)進(jìn)行排序并保存至第3個列表my_list3中,進(jìn)行print打印輸出(如圖3)。

        法4:sample()隨機(jī)多個“取樣”

        Random中的sample()功能是從序列中隨機(jī)多個“取樣”。首先建立列表my_list1,其值為從0-9999中隨機(jī)抽取10個不重復(fù)的數(shù)據(jù):“my_list1 = random.sample(range(10000),10)”;然后就可以使用sorted()函數(shù)進(jìn)行排序,將結(jié)果保存至列表my_list2中,最后進(jìn)行print打印輸出(如圖4)。

        法5:numpy中的random.choice()隨機(jī)項(xiàng)提取

        numpy中有個random.choice(),可以隨機(jī)從指定列表中提取若干個元素。首先,通過“import numpy as np”導(dǎo)入numpy;接著建立列表my_list1,存儲的數(shù)據(jù)是0-9999共10000個數(shù)據(jù):“my_list1 = list(range(10000))”;建立列表my_list2,值為從列表my_list1中隨機(jī)提取10個不重復(fù)的數(shù)據(jù):“my_list2 = np.random.choice(my_list1,10,replace=False)”,其中的參數(shù)“replace=False”即為控制隨機(jī)數(shù)“不重復(fù)”。最后,使用sorted()函數(shù)進(jìn)行排序并保存至第3個列表my_list3中,進(jìn)行print打印輸出即可(如圖5)。

        小結(jié):抽獎就是獲取不重復(fù)的隨機(jī)數(shù)的問題,要解決這個問題Python有多種函數(shù)和算法可以選擇,體會其中的區(qū)別后你可以合理運(yùn)用在其他實(shí)際應(yīng)用中。

        猜你喜歡
        抽獎列表整數(shù)
        巧用列表來推理
        開學(xué)大抽獎
        學(xué)習(xí)運(yùn)用列表法
        擴(kuò)列吧
        一類整數(shù)遞推數(shù)列的周期性
        大抽獎
        航空模型(2016年8期)2017-05-03 12:17:21
        抽獎
        聚焦不等式(組)的“整數(shù)解”
        不含3-圈的1-平面圖的列表邊染色與列表全染色
        抽獎
        興趣英語(2013年3期)2013-05-13 09:21:06
        人妻少妇乱子伦精品| 日韩国产自拍视频在线观看| 中文字幕影片免费人妻少妇| 精品精品国产自在97香蕉| 7777精品伊人久久久大香线蕉| 国产精品一区二区三级| 白色月光免费观看完整版| 欧美奶涨边摸边做爰视频| 亚洲av无码不卡久久| 久久精品性无码一区二区爱爱| 亚洲福利视频一区二区三区| 无码精品一区二区三区在线| 精品亚洲成a人7777在线观看| 国产v综合v亚洲欧美大天堂| 精品人妻一区二区三区不卡毛片| 少妇无码太爽了在线播放| 色偷偷久久一区二区三区| 久久青青草原国产精品最新片| 国产av一区二区网站| 中文字幕精品一区二区精品| 欧美丰满大乳高跟鞋| caoporon国产超碰公开| 日韩麻豆视频在线观看| 韩国三级中文字幕hd| 亚洲一级黄色毛片| 美腿丝袜一区在线观看| 夜夜高潮夜夜爽夜夜爱爱一区| 国产av人人夜夜澡人人爽| 国产精品色内内在线播放| 亚洲男人的天堂av一区| 婷婷五月婷婷五月| 99久久免费国产精品2017| 内射中出后入内射极品女神视频| 日本少妇高潮喷水视频| 在线观看午夜亚洲一区| 美女窝人体色www网站| 精品国产一区二区三区av免费| 亚洲av午夜国产精品无码中文字| 久久精品国产亚洲AV高清特级| 偷拍一区二区三区黄片| 人妻丰满av无码中文字幕|