电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python中random模塊常用方法的使用教程

瀏覽:43日期:2022-07-09 10:17:59

前言

Python 的random模塊包含許多隨機數生成器。

random是Python標準庫之一,直接導入即可使用。本文介紹random中常用方法的用法。

一、生成隨機的整數

# coding=utf-8import random print(random.randint(1, 5))print(random.randrange(0, 51, 5))

運行結果:

340

randint(start, end)會返回一個start到end之間的整數,這里是左閉右閉區間。也就是說可能會返回end值,在Python中,這個是一個比較特殊的地方,一般來說都是左閉右開的區間。

randrange(start, end, step)返回一個range(start, end, step)生成的列表中的隨機一個值。這里是左閉右開區間,如果上面代碼的51如果換成50,則不可能返回50。

每次運行的結果是不同的,因為是隨機返回其中一個。

二、生成隨機的小數

print(random.random())print(random.uniform(2, 5))

運行結果:

0.495415248024658972.948656863619216

random()返回0到1之間的任意一個浮點數。

uniform(start, end)返回start到end之間的任意一個浮點數,其實就是將random()的結果乘(end-start),代碼就是這么實現的。

三、從字符串、列表、元組中隨機返回一個值

choice_str = ’python’print(random.choice(choice_str))choice_list = [i for i in range(1, 6)]print('choice_list: ', choice_list)print(random.choice(choice_list))choice_tuple = (10, 20, 30, 40, 50)print(random.choice(choice_tuple))

運行結果:

hchoice_list: [1, 2, 3, 4, 5]520

choice()返回可迭代對象中的一個值。可以是列表、元組、字符串,不能是字典和集合。

四、從字符串、列表、元組中隨機返回一次或多次,且設置權重

choice_list = [i for i in range(1, 6)]print('choice_list: ', choice_list)print(random.choices(choice_list))choice_tuple = (10, 20, 30, 40, 50)print(random.choices(choice_tuple, k=2))choice_str = ’python’print(random.choices(choice_str, weights=[0.5, 0, 0.5, 0, 0, 0], k=7))print(random.choices(choice_str, cum_weights=[0, 0.5, 0.5, 1, 1, 1], k=7))

運行結果:

choice_list: [1, 2, 3, 4, 5][4][20, 50][’t’, ’p’, ’t’, ’p’, ’p’, ’t’, ’t’][’h’, ’y’, ’h’, ’h’, ’h’, ’h’, ’y’]

choices(population, weights=None, cum_weights=None, k=1)從可迭代對象中返回一次或多次值,返回結果是一個列表。

weights是每一個值對應的權重列表,默認是None,所有元素權重相等。傳入權重列表時,列表長度必須與可迭代對象的長度相等,值與權重按索引一一對應。傳入的值可以是任何數字,只要能對比出不同值之間的權重大小就可以,系統會按權重大小來計算返回每個值的可能性,如上面的例子中只會返回“python”中的p和t,因為其他字符的權重為0。

cum_weights是每一個值對應的累計權重列表,默認是None,所有元素權重相等。傳入權重列表時,列表長度必須與可迭代對象的長度相等。權重是累計的,每一個位置的累計權重是前面所有元素的權重之和加上當前位置元素的權重,也就是說這個列表后面的值不可能小于前面的值。系統會根據累計權重值計算出每個元素的權重,然后計算返回每個值的可能性,如上面的例子中只會返回“python”中的y和h,因為其他字符的權重是0。

注意:weights和cum_weights不能同時有值,即使計算結果一樣。

k值是從可迭代對象中獲取值的次數,每次只取其中的一個,重復k次,所以,理論上,有可能k次都取到同一個元素。

五、從字符串、列表、元組中隨機獲取一個或多個值

sample_list = [i for i in range(1, 6)]print('sample_list: ', sample_list)print(random.sample(sample_list, 1))sample_tuple = (10, 20, 30, 40, 50)print(random.sample(sample_tuple, 2))sample_str = ’python’print(random.sample(sample_str, 3))

運行結果:

sample_list: [1, 2, 3, 4, 5][1][10, 40][’p’, ’h’, ’o’]

sample(population, k)從可迭代對象中隨機返回k個元素,返回一個列表。

k表示返回元素的個數,這個參數沒有默認值,必須傳值。并且,是一次從可迭代對象中返回k個值,不是分k次,每個元素不會重復被取。此外,k值不可以大于可迭代對象的長度,否則報錯,而上面choices中的k可以無限大,只要需要。使用場景不同,要注意區別。

六、隨機打亂順序

cards = [’%s-%s’ % (a, b) for a in [’Spade’, ’Heart’, ’Diamond’, ’Club’] for b in ([str(i) for i in range(3, 11)] + [j for j in ’JQKA2’])] + [’Black joker’, ’Red joker’]print('Before: ', cards)random.shuffle(cards)print('After: ', cards)

運行結果:

Before: [’Spade-3’, ’Spade-4’, ’Spade-5’, ’Spade-6’, ’Spade-7’, ’Spade-8’, ’Spade-9’, ’Spade-10’, ’Spade-J’, ’Spade-Q’, ’Spade-K’, ’Spade-A’, ’Spade-2’, ’Heart-3’, ’Heart-4’, ’Heart-5’, ’Heart-6’, ’Heart-7’, ’Heart-8’, ’Heart-9’, ’Heart-10’, ’Heart-J’, ’Heart-Q’, ’Heart-K’, ’Heart-A’, ’Heart-2’, ’Diamond-3’, ’Diamond-4’, ’Diamond-5’, ’Diamond-6’, ’Diamond-7’, ’Diamond-8’, ’Diamond-9’, ’Diamond-10’, ’Diamond-J’, ’Diamond-Q’, ’Diamond-K’, ’Diamond-A’, ’Diamond-2’, ’Club-3’, ’Club-4’, ’Club-5’, ’Club-6’, ’Club-7’, ’Club-8’, ’Club-9’, ’Club-10’, ’Club-J’, ’Club-Q’, ’Club-K’, ’Club-A’, ’Club-2’, ’Black joker’, ’Red joker’]After: [’Spade-3’, ’Diamond-J’, ’Club-8’, ’Club-7’, ’Diamond-10’, ’Spade-J’, ’Heart-J’, ’Diamond-A’, ’Spade-K’, ’Spade-10’, ’Spade-8’, ’Club-10’, ’Club-J’, ’Heart-9’, ’Diamond-4’, ’Diamond-5’, ’Red joker’, ’Spade-5’, ’Club-4’, ’Club-Q’, ’Heart-7’, ’Spade-Q’, ’Club-A’, ’Spade-6’, ’Diamond-6’, ’Black joker’, ’Spade-7’, ’Heart-Q’, ’Club-9’, ’Club-3’, ’Heart-K’, ’Diamond-Q’, ’Diamond-K’, ’Spade-2’, ’Heart-5’, ’Heart-A’, ’Heart-4’, ’Heart-3’, ’Diamond-7’, ’Club-K’, ’Diamond-9’, ’Spade-4’, ’Heart-2’, ’Spade-A’, ’Club-6’, ’Club-2’, ’Heart-8’, ’Diamond-2’, ’Heart-10’, ’Heart-6’, ’Club-5’, ’Spade-9’, ’Diamond-8’, ’Diamond-3’]

shuffle()將可迭代對象的順序隨機打亂,上面例子中我們模擬了一副撲克牌,然后用shuffle()完成“洗牌”。

注意:shuffle()沒有返回值,是直接對可迭代對象進行修改。

random除了上面的方法外,還有一些按數學分布隨機生成數據的方法,如正太分布,指數分布等,這里就不繼續舉例了,其實random源碼也不是很多,里面的方法數量是人工可數的,需要的話您可以在Pycharm中按住Ctrl點進去看看。

總結

到此這篇關于Python中random模塊常用方法的使用教程的文章就介紹到這了,更多相關Python random模塊常用方法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | ptc_浴霸_大巴_干衣机_呼吸机_毛巾架_电动车加热器-上海帕克 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 农产品溯源系统_农产品质量安全追溯系统_溯源系统 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 双杰天平-国产双杰电子天平-美国双杰-常熟双杰仪器 | 卧涛科技有限公司科技项目申报公司|高新技术企业申报|专利申请 | 深圳展厅设计_企业展馆设计_展厅设计公司_数字展厅设计_深圳百艺堂 | 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 中细软知识产权_专业知识产权解决方案提供商 | 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 三防漆–水性三防漆–水性浸渍漆–贝塔三防漆厂家 | 共享雨伞_共享童车_共享轮椅_共享陪护床-共享产品的领先者_有伞科技 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 台式恒温摇床价格_大容量恒温摇床厂家-上海量壹科学仪器有限公司 | 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 纳米涂料品牌 防雾抗污纳米陶瓷涂料厂家_虹瓷科技 | 陕西自考报名_陕西自学考试网| 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 在线PH计-氧化锆分析仪-在线浊度仪-在线溶氧仪- 无锡朝达 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 陕西鹏展科技有限公司 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 北京亦庄厂房出租_经开区产业园招商信息平台 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 北京租车牌|京牌指标租赁|小客车指标出租 | ge超声波测厚仪-电动涂膜机-电动划格仪-上海洪富 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 心得体会网_心得体会格式范文模板| 板式换热器_板式换热器价格_管式换热器厂家-青岛康景辉 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 |