python生成伪随机数的扩展库_python模块介绍-random:生成伪随机数
概述
這個(gè)模塊實(shí)現(xiàn)的偽隨機(jī)數(shù)生成器。
對(duì)于整數(shù),從區(qū)間選取。對(duì)于序列,隨機(jī)元素。
在實(shí)線的,有功能來(lái)計(jì)算均勻分布,正態(tài)分布(高斯) ,對(duì)數(shù)正態(tài)分布,負(fù)指數(shù),γ和β分布。對(duì)于生成的角度分布,馮·米塞斯的分布是可用的。
幾乎所有的模塊功能依賴于基本功能隨機(jī)的( ) ,它生成一個(gè)隨機(jī)浮點(diǎn)均勻的半開區(qū)間[ 0.0 , 1.0 ) 。 Python使用Mersenne扭曲為核心的發(fā)電機(jī)。它產(chǎn)生53位精度浮點(diǎn)值,周期為2 19937-1 。 C語(yǔ)言底層實(shí)現(xiàn)是快速和線程。梅森倍捻機(jī)是最廣泛的測(cè)試,隨機(jī)數(shù)生成器的存在之一。然而,作為完全確定性的,所以不適合用于所有目的,并且是完全不適合加密的目的。
該模塊提供的功能實(shí)際上是必然的random.Random類的隱藏的實(shí)例的方法。你可以實(shí)例化你自己隨機(jī)的情況下獲得的發(fā)電機(jī)不共享狀態(tài)。這對(duì)于多線程程序特別有用,創(chuàng)建隨機(jī)的為每個(gè)線程使用不同的實(shí)例,并使用jumpahead ( )方法,使之有可能看到每個(gè)線程生成的序列不重疊。
在這種情況下,覆蓋隨機(jī)的( ) ,種子( ) ,有g(shù)etstate ( )的setstate ()和jumpahead ( )方法:隨機(jī)類也可以,如果你想使用你自己設(shè)計(jì)的不同的基本生成子類。或者,一種新型的發(fā)電機(jī)可以提供一個(gè)getrandbits ( )方法 - 這讓randrange ( )產(chǎn)生的選擇了一個(gè)任意大的范圍內(nèi)。
新的2.4版: getrandbits ( )方法。
作為子類的一個(gè)實(shí)例,隨機(jī)模塊提供了一個(gè)實(shí)現(xiàn)純Python的替代發(fā)電機(jī)WichmannHill類。這個(gè)類提供了重現(xiàn)從早期版本的Python ,它使用的WICHMANN山為核心的算法生成的結(jié)果向后兼容的方式。注意,這WICHMANN - 希爾發(fā)生器可以不再推薦:其周期是由當(dāng)代標(biāo)準(zhǔn)太短,并且所產(chǎn)生的序列是已知的失敗一些嚴(yán)格的隨機(jī)性測(cè)試。請(qǐng)參閱下面的參考資料為最近的變體,修復(fù)這些缺陷。
改變?cè)?.3版本: MersenneTwister更換WICHMANN - 希爾作為默認(rèn)生成器。
隨機(jī)模塊還提供了使用該系統(tǒng)的功能os.urandom ()從由操作系統(tǒng)提供源產(chǎn)生隨機(jī)數(shù)的SystemRandom類。
快速入門
>>> random.random() # Random float x, 0.0 <= x < 1.0
0.37444887175646646
>>> random.uniform(1, 10) # Random float x, 1.0 <= x < 10.0
1.1800146073117523
>>> random.randint(1, 10) # Integer from 1 to 10, endpoints included
7
>>> random.randrange(0, 101, 2) # Even integer from 0 to 100
26
>>> random.choice('abcdefghij') # Choose a random element
'c'
>>> items = [1, 2, 3, 4, 5, 6, 7]
>>> random.shuffle(items)
>>> items
[7, 3, 2, 5, 6, 4, 1]
>>> random.sample([1, 2, 3, 4, 5], 3) # Choose 3 elements
[4, 1, 5]
Python的單元測(cè)試框架,有時(shí)也被稱為PyUnit,是Kent Beck和Erich Gamma的JUnit的Python版本,JUnit又來(lái)源于Kent的Smalltalk的測(cè)試框架。
單元測(cè)試支持自動(dòng)化測(cè)試,測(cè)試共享setup和shutdown代碼,匯集測(cè)試為集合,報(bào)告框架和測(cè)試獨(dú)立。
一些重要概念:
test fixture 測(cè)試夾具:執(zhí)行測(cè)試的準(zhǔn)備和清理工作。這可能包括,例如,創(chuàng)建臨時(shí)或代理數(shù)據(jù)庫(kù),目錄,或啟動(dòng)一個(gè)服務(wù)器進(jìn)程。
測(cè)試用例
test case 測(cè)試用例:測(cè)試的最小單位。它檢查特定的輸入的特定響應(yīng)。單元測(cè)試提供一個(gè)基類TestCase用來(lái)建立新的測(cè)試用例。
test suite測(cè)試套件:測(cè)試用例或測(cè)試套件或兩者的集合,用來(lái)匯聚要執(zhí)行的測(cè)試。
test runner 測(cè)試執(zhí)行器:執(zhí)行側(cè)事故并提供輸出給用戶。它可使用圖形界面,文本界面,或者返回特殊的值指示執(zhí)行的測(cè)試結(jié)果。
test case和test fixture 的概念通過 TestCase和FunctionTestCase類的支持,前者創(chuàng)建新測(cè)試的時(shí)使用,后者適用于集成現(xiàn)有的測(cè)試代碼到unittes驅(qū)動(dòng)框架。TestCase的setUp()和tearDown()方法可以重載來(lái)提供準(zhǔn)備和清理工作。FunctionTestCase中可以傳遞給構(gòu)造函數(shù)準(zhǔn)備和清理的函數(shù)名。當(dāng)測(cè)試運(yùn)行時(shí)先執(zhí)行fixture初始化,如果初始化執(zhí)行成功,不管測(cè)試的結(jié)果如何測(cè)試執(zhí)行后會(huì)執(zhí)行清理方法。每個(gè)TestCase實(shí)例只用于運(yùn)行單個(gè)測(cè)試方法,每個(gè)測(cè)試都有自己的fixture。
Test suite由TestSuite類實(shí)現(xiàn)。它允許匯聚單個(gè)測(cè)試和test suite。 test runner只具有run()方法的對(duì)象,它接受一個(gè)TestCase或TestSuite對(duì)象作為參數(shù),并返回結(jié)果對(duì)象。類TestResult提供了結(jié)果對(duì)象。unittest提供TextTestRunner作為默認(rèn)的示例測(cè)試執(zhí)行器,在標(biāo)準(zhǔn)錯(cuò)誤流中報(bào)告測(cè)試結(jié)果。
快速入門
本文地址
參考資料
代碼地址:Lib/unittest/mock.py
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的python生成伪随机数的扩展库_python模块介绍-random:生成伪随机数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac的python在哪里_python
- 下一篇: python selenium鼠标点击_