Python3中常用模塊-random模塊

2020-11-26 騰訊網

random是Python中與隨機數相關的模塊,其本質就是一個偽隨機數生成器,我們可以利用random模塊基礎生成各種不同的隨機數,以及一些基於隨機數的操作。

1:獲取模塊幫助文檔

# encoding=gbkimport random print(random.__doc__) print(dir(random)) for item in dir(random): print(item) print(help(random.random))print(help(random.randrange))print(help(random.randint))

2:random模塊方法

2.1 基本方法

2.1.1:設置隨機種子: random.seed(a=None, version=2)

初始化隨機數生成器。如果未提供a或者a=None,則使用系統時間為種子。如果a是一個整數,則作為新的種子。如果a的值一樣,每次運行的產生的隨機數都是一樣的。

import random random.seed(100)print(random.randint(1,1000))print(random.randint(1,1000))print(random.randint(1,1000))print(random.randint(1,10000)) """每次運行,產生的值都是一樣的"""

2.1.2:獲取及設置生成器的內部狀態

獲取狀態:

state = random.getstate()

設置狀態:

random.setstate(state)

這個有什麼用呢?在狀態一樣的情況下,生成的隨機數是一樣的,如下例子:

import random # 保存內部狀態state = random.getstate() print(random.randint(1,1000))print(random.randint(1,1000))print(random.randint(1,1000))print(random.randint(1,10000))print(random.randint(1,10000)) print('*'*20)# 重置內部狀態,後面產生的隨機數將會與保存state狀態的地方產生的隨機數一樣(當然是隨機範圍一樣的情況下)random.setstate(state)print(random.randint(1,1000))print(random.randint(1,1000))print(random.randint(1,1000))print(random.randint(1,10000))print(random.randint(1,10000)) """輸出:32972467424964437********************32972467424964437"""

2.2 隨機整數

import random # 返回一個不大於K位的Python整數(十進位),比如k=10,則結果是0~2^10之間的整數。k = 10print(random.getrandbits(k)) # random.randrange(start, stop[, step])print(random.randrange(10)) # [0,10),0---9 print(random.randrange(1, 10,2)) # [1,10) ,1---9 中的奇數 # random.randint(a, b)print(random.randint(1, 10)) # [1,10] 1---10 之間的整數

2.3 隨機浮點數

import random# [0, 1)print(random.random()) # uniform(a, b):[a, b) or [a, b] depending on rounding; 四捨五入print(random.uniform(10.25,100.25))

2.4 從序列中隨機獲取元素

import random # 1:# 從非空序列seq中隨機選取一個元素。如果seq為空則彈出IndexError異常。# choice(seq) seq = [1,2,3,4,5,6,7,8,11]print(random.choice(seq)) # 2:# 3.6版本新增。從population集群中隨機抽取K次元素。weights是相對權重列表(即可以轉換為概率),cum_weights是累計權重,兩個參數不能同時存在。# choices(population, weights=None, *, cum_weights=None, k=1)a = [1,2,3,4,5]# 在a中取5次元素,每次都從原序列中取,print(random.choices(a,k=5)) # 在a中取5次元素,每次都從原序列中取,並按照相對權重來取(可以理解按照概率(權重/累計權重)來取),下面輸出中:第三個元素的概率是100%print(random.choices(a,weights=[0,0,1,0,0],k=5))# 在a中取5次元素,每次都從原序列中取,並按照相對權重來取(可以理解按照概率來取);下面輸出中,每個元素取到的概率都是一樣的print(random.choices(a,weights=[1,1,1,1,1],k=5))# cum_weights是累計權重,如:weights=[1,2,3,4,5] 對應的cum_weights為cum_weights=[1,3,6,10,15],# 那麼 cum_weights=[1,1,1,1,1] 對應的weights為: weights=[1,0,0,0,0],即第一元素取到的概率為100%print(random.choices(a,cum_weights=[1,1,1,1,1],k=5)) """結果:[3, 4, 2, 2, 3] --- 隨機的[3, 3, 3, 3, 3] --- 每次都是3[5, 4, 4, 4, 5] --- 隨機的[1, 1, 1, 1, 1] --- 每次都是1""" # 3:# 從population樣本或集合中隨機抽取K個不重複的元素形成新的序列。常用於不重複的隨機抽樣。返回的是一個新的序列,不會破壞原有序列。比如從一個整數區間隨機抽取一定數量的整數random.sample(range(10000000), k=60),這非常有效和節省空間。如果k大於population的長度,則彈出ValueError異常。a = [1,2,3,4,5]# 在a中取3次元素,上次取完之後,下次在剩下的元素中取;(注意與random.choices的區別:random.choices是取一次之後,還會在原序列所有元素中取)# sample(population, k) print(random.sample(a, 3)) # [4, 5, 1] 隨機的 # 4:# 隨機打亂序列x內元素的排列順序,俗稱「洗牌」。只能用於可變的序列,對於不可變序列。# shuffle(x, random=None)a = [1,2,3,4,5]# 把a的順序打亂random.shuffle(a) # 返回值為Noneprint(a) # 隨機的

3:生成隨機字符串

# encoding=gbkimport random, string # string 模塊中:# ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'# ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'# ascii_letters = ascii_lowercase + ascii_uppercase# digits = '0123456789'# hexdigits = digits + 'abcdef' + 'ABCDEF'# octdigits = '01234567'# punctuation = r"""!"#$%&'()*+,-./:;?@[\]^_`{|}~""" # 1:最少4位# 2:最少包括一位大寫字母,小寫字母,數字。def verificationCode(length): if length

相關焦點

  • python sys模塊的常見用法匯總
    python的內置模塊sys,提供了系統相關的一些變量和函數,在實際開發中,常見的有以下幾種用法1.sys.getdefaultencoding()'utf-8'在python3中,默認的編碼方式為utf8, 所以不再需要像python2那樣,自己手動設置編碼格式為utf-8。
  • python隨機模塊22個函數詳解(上)
    作者:小伍哥來源: AI入門學習今天給大家介紹下python中的隨機模塊,隨機數可以用於數學,遊戲,安全等領域中,還經常被嵌入到算法中,用以提高算法效率,並提高程序的安全性。平時數據分析各種分布的數據構造也會用到。
  • SKYLAB:盤點車載導航中常用的GNSS模塊運用
    本篇SKYLAB君帶大家一起盤點車載導航中常用的GNSS模塊運用。北鬥定位模塊和單頻北鬥多模定位模塊、雙頻北鬥多模定位模塊;根據定位精度的不同分為標準高精度GNSS定位模塊和RTK高精度GNSS定位模塊;根據使用方式的不同分為嵌入式內置型GNSS定位模塊和外置型天線一體化GNSS G-mouse成品;根據模塊性能的不同分為標準高精度GNSS定位模塊,RTK高精度GNSS定位模塊,弱信號GNSS+INS慣性組合導航模塊和
  • SCI論文引言的寫作模塊與常用句式
    在SCI論文中,引言具有總攬論文全局的重要性,其根本目的是向讀者和審稿專家闡明「為什麼要做這個研究」。引言一般由背景資料、研究現狀、指出問題、研究目的或內容四個部分組成,不過我們常常發現,許多SCI論文引言中是沒有背景資料部分的。
  • 20課零基礎快速學python代碼模塊的定義 使用自己的模塊
    模塊不僅僅我們自己使用,也可以把它給別人使用,就像傳遞文件一樣那麼簡單。好了,接下來,我們看一看模塊使用的方式。建立模塊,就是建立.py文件。在其中一個.py文件中引入另一個.py文件。如下圖:我們在main.py模塊中引入mytest.py模塊。
  • 三分鐘從入門到精通——Python模塊
    因此,python有一種方法可以將該函數定義放入文件中並隨時使用。模塊是ModuleType類型的對象。該模塊基本上是一個python文件(擴展名為的文件.py),其中包含定義和語句(例如:類,函數,變量等)。Python中的模塊為我們提供了邏輯上組織代碼的靈活性。我們使用模塊將大型程序分解為小的可管理文件。
  • 介紹幾個模塊電源中常用的MOSFET驅動電路
    下面介紹幾個模塊電源中常用的MOSFET驅動電路。1、電源IC直接驅動MOSFET圖1 IC直接驅動MOSFET電源IC直接驅動是我們最常用的驅動方式,同時也是最簡單的驅動方式,使用這種驅動方式,應該注意幾個參數以及這些參數的影響。
  • CWDM光模塊與DWDM光模塊的5大區別
    一、波段不同 1、CWDM光模塊的波長範圍在1270-1610nm,波段間隔20nm,共有18個通道可選,通常採用1470-1610nm波段,常用傳輸距離為40KM、80KM和120KM。CWDM光模塊的傳輸速率有155M、1.25G、10G,分別對應SFP、SFP+/XFP封裝類型。
  • 電子模塊之升壓電源模塊介紹
    說電源模塊之前,先簡單的說下電源模塊與電源的區別。從界定上來說,電源就是把其它形式的能量轉換成電能的設備。而電源模塊雖然也屬於電源供應器,但它的實質是一款可以直接焊接直插在電路板上的電源轉換器。電源模塊使用範圍很廣,它廣泛應用於交換設備、接入設備、移動通訊、微波通訊以及光傳輸、路由器等通信領域和汽車電子、航空航天等各種行業領域。電源模塊分類也較多,有不同的劃分標準,比較統一的劃分如下:通常人們按照現代電力電子的應用領域劃分,可劃分為九大類:綠色電源模塊、開關電源模塊、變換器、UPS、變頻器電源、焊機電源模塊、直流電源模塊、濾波器、供電系統。
  • 單模光模塊和多模光模塊之間的區別
    (1)波長不同 多模光模塊的工作波長一般是850nm,單模光模塊的工作波長一般是1310nm、1550nm。 (2)傳輸距離不同 單模光模塊常用於遠距離傳輸,傳輸距離可達150至200km。多模光模塊則用於短距離傳輸中,傳輸距離可達5km。 (3)光纖類型不同 光模塊中的單模,實際上只指光纖種類。
  • 汽車應用中的IGBT功率模塊
    EV和HEV中對IGBT功率模塊的可靠性要求最高的部分是傳動系,IGBT位於逆變器中,為混合系統的電機提供能量。根據傳動系的概念,逆變器可以放置在汽車尾箱、變速箱內或引擎蓋下靠近內燃機的位置,因此IGBT模塊要經受嚴峻的熱和機械條件(振動和衝擊)的考驗。
  • python中常用模塊詳解
    在編程中我們經常會遇到這樣的需求:將一串數據或者有效信息暫存在本地(一般情況下這種數據量並不大,當數據量較大時,可以選擇使用temp文件存儲方式,參見一個項目引發的思考,如何操作臨時文件?Python中的內置模塊實現)。
  • SFP+光模塊如何與交換機搭配使用?四種方式常用!
    前幾天我們提到光纖常用的8種接口,有朋友就問到了關於SFP+光模塊如何使用?在企業網絡部署、數據中心建設都離不開光模塊與交換機。光模塊主要是用來將電信號與光信號進行轉換,而交換機則是對光電信號起到轉發作用。
  • 如何挑選40G光模塊?
    導讀 40G光模塊是指傳輸速率為40Gbps的光模塊,不同的網絡中使用的光模塊類型也不盡相同,例如千兆乙太網中一般使用1000 BASE SFP光模塊,萬兆乙太網中使用10G
  • 德令哈RD20A230H電源模塊充電模塊廠家報價
    該部分電路可以有效吸收雷擊殘壓和電網尖峰,保證模塊後級電路的安全。三相交流經整流和無源PFC後轉換成高壓直流電,經全橋PWM電路後轉換為高頻交流,再經高頻變壓器隔離降壓後高頻整流輸出。模塊控制部分負責PWM信號產生及控制,保證輸出穩定,同時對模塊各部分進行保護,提供「四遙」接口。
  • 光模塊實用資料:手把手教你怎樣選擇合適的光模塊
    光纖通信離不開光模塊的支持,現在市面上有著大量的光模塊,也造成了很多對光模塊的認識並不夠全面,不知道怎樣去選擇適合自己的光模塊。在本文中,易飛揚通信將介紹光模塊的實用資料,看完之後你就知道怎樣選擇合適的光模塊了。  光模塊是什麼?
  • 多個電源模塊並聯應用的方法
    目前常用的電源並聯電路設計方案有電阻並聯法、電流均流並聯法和二極體並聯法三種。電阻並聯法是指在模塊輸出端外分別串接電阻再並聯,原理是利用電阻的線性電壓實現負載均衡,適用於輸出功率不大、精確度要求不高的場合。電流均流並聯法是指使用特定均流IC設計並聯輸出,但是成本較高,適用於精確度要求較高的場合。
  • 揭秘CWDM光模塊與普通光模塊的區別
    導讀 光通信的發展,使得光通信組件也在快速增長中。光模塊作為光通信的組件之一,在其中起著光電轉換的作用。
  • 光模塊專題報告:在變革中的光模塊市場把握本土化機遇
    意味著相干光 模塊規模將從 2020 到 2025 年將保持在 50 億元上下的水平。此外彩光 模塊在接入和傳輸中滲透日趨廣泛,WDM 在網絡中的滲透率也在提升, 從 2020 年的 12%升至 2025 年的 14%,對應規模從 60 億多元提升至 170 多億元。
  • 變頻器的整流模塊、逆變模塊的故障
    1、整流模塊的故障該故障屬於變頻器內部故障。測試電路整流模塊的基本電路如圖 4-4 所示。其內部二極體是否損壞可用萬用表的電阻擋來測量。在測量變頻器內部的整流模塊時,沒有必要把模塊拆下後再進行測量,而可以直接在變頻器上進行測量。2、逆變模塊的故障該故障也屬於變頻器內部故障。電路逆變模塊的內部電路如圖4-5所示。