成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python模塊分析:第1節(jié)-random模塊

philadelphia / 1385人閱讀

摘要:下一篇文章模塊分析第節(jié)加密模塊是產(chǎn)生偽隨機(jī)數(shù)的模塊,隨機(jī)種子默認(rèn)為系統(tǒng)時(shí)鐘。核心源碼時(shí)間復(fù)雜度實(shí)例結(jié)果下一篇文章模塊分析第節(jié)加密模塊

下一篇文章:Python模塊分析:第2節(jié)-hashlib加密模塊

random是Python產(chǎn)生偽隨機(jī)數(shù)的模塊,隨機(jī)種子默認(rèn)為系統(tǒng)時(shí)鐘。下面分析模塊中的方法:

1、random.randint(start,stop)

這是一個(gè)產(chǎn)生整數(shù)隨機(jī)數(shù)的函數(shù),參數(shù)start代表最小值,參數(shù)stop代表最大值,兩端的數(shù)值都可以取到;

函數(shù)算法時(shí)間復(fù)雜度為:O(1)

核心源碼:

return self.randrange(a,b+1) #調(diào)用randrange函數(shù)來(lái)處理

實(shí)例:

import random

for i in range(20):
    print(random.randint(0,10),end=" ")

結(jié)果:

1 1 7 5 10 1 4 1 0 8 7 7 2 10 6 8 6 0 3 1
2、random.randrange(start,stop,step)

也是一個(gè)隨機(jī)整數(shù)函數(shù),參數(shù)可選

只有一個(gè)參數(shù)時(shí),默認(rèn)隨機(jī)范圍是0到該參數(shù),前閉后開(kāi);

兩個(gè)參數(shù)時(shí),表示最小值和最大值,前閉后開(kāi)

三個(gè)參數(shù)時(shí),表示最小值,最大值和步長(zhǎng),前閉后開(kāi)

函數(shù)算法時(shí)間復(fù)雜度:O(1)

核心源代碼:

return istart+istep*self._randbelow(n) #調(diào)用randbelow函數(shù)處理

實(shí)例:

import random

for i in range(10):
    print(random.randrange(10),end=" ") #產(chǎn)生0到10(不包括10)的隨機(jī)數(shù)

print("")

for i in range(10):
    print(random.randrange(5,10),end=" ") #產(chǎn)生5到10(不包括10)的隨機(jī)數(shù)

print("")

for i in range(10):
    print(random.randrange(5,100,5),end=" ") #產(chǎn)生5到100(不包括100)范圍內(nèi)的5倍整數(shù)的隨機(jī)數(shù)

結(jié)果:

1 1 2 4 4 3 4 6 1 4
6 6 5 7 8 9 6 6 6 5
30 50 20 40 75 85 25 65 80 95
3、random.choice(seq)

一個(gè)隨機(jī)選擇函數(shù),seq是一個(gè)非空的集合,在集合中隨機(jī)選擇了一個(gè)元素輸出,元素的類(lèi)型沒(méi)有限制。

核心源代碼:

i=self._randbelow(len(seq)) #由randbelow函數(shù)得到隨機(jī)地下標(biāo)
return seq[i]

函數(shù)算法時(shí)間負(fù)責(zé)度:O(1)

實(shí)例:

import random

list3=["mark","帥",18,[183,138]]
for j in range(10):
    print(random.choice(list3),end=" ")

代碼:

mark 帥 [183, 138] 18 mark 18 mark 帥 帥 [183, 138]
4、random.random()

這個(gè)函數(shù)形成從0.0到1.0之間的任意浮點(diǎn)數(shù),左閉右開(kāi),沒(méi)有參數(shù)。

實(shí)例:

import random

for j in range(5):
    print(random.random(),end=" ")

運(yùn)行結(jié)果:

0.357486615834809 0.5928029747238529 0.37053940107869987 0.3802224543848519 0.9741990956161711
5、random.send(n=None)

一個(gè)可以對(duì)隨機(jī)數(shù)生成器進(jìn)行初始化的函數(shù),n代表隨機(jī)種子;當(dāng)n=None時(shí),隨機(jī)種子為系統(tǒng)時(shí)間,當(dāng)n為其他的數(shù)據(jù),如int,str等時(shí),則以提供的數(shù)據(jù)作為隨機(jī)種子,此時(shí)生成的隨機(jī)數(shù)列固定。

實(shí)例:

import random

random.seed("mark")
for j in range(20):#無(wú)論啟動(dòng)多少次程序,輸出的序列不變
    print(random.randint(0,10),end=" ")

結(jié)果:

4 1 10 5 6 2 8 5 5 10 7 2 9 6 2 6 0 5 10 10
6、random.getstate() 和 random.setstate(state):

getstate()函數(shù)用來(lái)記錄隨機(jī)數(shù)生成器的狀態(tài),setstate(state)函數(shù)用來(lái)將生成器恢復(fù)到上次記錄的狀態(tài)。

實(shí)例:

import random

tuple1=random.getstate()#記錄生成器的狀態(tài)
for i in range(20):
    print(random.randint(0,10),end=" ")
print()
random.setstate(tuple1)#傳入?yún)?shù)回復(fù)之間的狀態(tài)
for i in range(20):
    print(random.randint(0,10),end=" ")#兩次輸出的結(jié)果一致

結(jié)果:

5 7 9 9 10 10 2 3 7 1 1 6 1 7 1 1 7 4 2 2
5 7 9 9 10 10 2 3 7 1 1 6 1 7 1 1 7 4 2 2
7、random.shuffle(seq,random=None):

對(duì)傳入的集合進(jìn)行亂序操作。只能針對(duì)可變序列,如字符串、列表,對(duì)于元組等不可變序列會(huì)報(bào)錯(cuò),random用來(lái)選擇亂序操作的方式,如random=random。

核心源代碼:

for i in reversed(range(1,len(x))):
    j=randbelow(i+1)
    x[i],x[j]=x[k],x[i]

函數(shù)算法的時(shí)間復(fù)雜度:O(n)

實(shí)例:

import random

lists=["mark","帥哥",18,[183,138]]
print(lists)
random.shuffle(lists,random=None)
print(lists)

結(jié)果:

["mark", "帥哥", 18, [183, 138]]
["帥哥", 18, "mark", [183, 138]]
8、random.sample(population,k):

population參數(shù)是一個(gè)序列,如列表、元組、集合、字符串等;從集合中隨機(jī)抽取k個(gè)元素形成新的序列,不會(huì)改變?cè)械男蛄小?/p>

最壞時(shí)間復(fù)雜度:O(n*n)

實(shí)例:

import random

lists=["mark","帥哥",18,[183,138]]
lists2=random.sample(lists,3)
print(lists)
print(lists2)

結(jié)果:

["mark", "帥哥", 18, [183, 138]]
["mark", [183, 138], "帥哥"]
9、random.uniform(a,b)

生成參數(shù)a到b之間的浮點(diǎn)數(shù)的函數(shù),如果a>b ,則生成b到a之間的浮點(diǎn)數(shù)。

核心源碼:

return a+(b-a)*self.random()

時(shí)間復(fù)雜度:0(1)

實(shí)例:

import random

for i in range(5):
    print(random.uniform(10,1))

結(jié)果:

2.8826090956524606
1.5211191352548408
3.2397454278562794
4.147879756524251
6.532545391009419
下一篇文章:Python模塊分析:第2節(jié)-hashlib加密模塊

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42648.html

相關(guān)文章

  • Python模塊分析2節(jié)-hashlib加密模塊

    摘要:上一篇文章模塊分析第節(jié)模塊下一篇文章模塊分析第節(jié)模塊模塊是用來(lái)對(duì)字符串進(jìn)行加密的模塊,明文與密文是一一對(duì)應(yīng)不變的關(guān)系用于注冊(cè)登錄時(shí)用戶名密碼等加密使用。一函數(shù)分析共有種加密算法,分別得到不同的加密密文。 上一篇文章:Python模塊分析:第1節(jié)-random模塊下一篇文章:Python模塊分析:第3節(jié)-typing模塊 hashlib模塊是用來(lái)對(duì)字符串進(jìn)行hash加密的模塊,明文與密...

    WalkerXu 評(píng)論0 收藏0
  • Python模塊分析3節(jié)-typing模塊

    摘要:代碼實(shí)例運(yùn)行結(jié)果跟不用無(wú)異上一篇文章模塊分析第節(jié)加密模塊下一篇文章模塊分析第節(jié)日志模塊 上一篇文章:Python模塊分析:第2節(jié)-hashlib加密模塊下一篇文章:Python模塊分析:第4節(jié)-logging日志模塊 Python是一門(mén)弱類(lèi)型的語(yǔ)言,很多時(shí)候我們可能不清楚函數(shù)參數(shù)類(lèi)型或者返回值類(lèi)型,很有可能導(dǎo)致一些類(lèi)型沒(méi)有指定方法,typing模塊可以很好的解決這個(gè)問(wèn)題。 該模塊加入...

    wujl596 評(píng)論0 收藏0
  • Python模塊分析4節(jié)-logging日志模塊

    摘要:上一篇文章模塊分析第節(jié)模塊一日志記錄的級(jí)別優(yōu)先級(jí),記錄調(diào)試的詳細(xì)信息,只在調(diào)試時(shí)開(kāi)啟優(yōu)先級(jí),記錄普通的消息,報(bào)告錯(cuò)誤和警告等待。監(jiān)聽(tīng)端口號(hào)上一篇文章模塊分析第節(jié)模塊 上一篇文章:Python模塊分析:第3節(jié)-typing模塊 一、日志記錄的級(jí)別 debug:優(yōu)先級(jí)10,記錄調(diào)試的詳細(xì)信息,只在調(diào)試時(shí)開(kāi)啟 info:優(yōu)先級(jí)20,記錄普通的消息,報(bào)告錯(cuò)誤和警告等待。 warning:優(yōu)...

    MartinHan 評(píng)論0 收藏0
  • Python3 簡(jiǎn)明教程

    摘要:課程簡(jiǎn)介簡(jiǎn)明易懂的課程,不僅適用于那些有其它語(yǔ)言基礎(chǔ)的同學(xué),對(duì)沒(méi)有編程經(jīng)驗(yàn)的同學(xué)也非常友好。建議遵守以下約定使用個(gè)空格來(lái)縮進(jìn)永遠(yuǎn)不要混用空格和制表符在函數(shù)之間空一行在類(lèi)之間空兩行字典,列表,元組以及參數(shù)列表中,在后添加一個(gè)空格。 showImg(https://segmentfault.com/img/bVCldE); 課程簡(jiǎn)介:簡(jiǎn)明易懂的 Python3 課程,不僅適用于那些有其它語(yǔ)...

    cyqian 評(píng)論0 收藏0
  • 分析16年的福利彩票記錄,原來(lái)可以用Python這么買(mǎi)彩票

    摘要:令人遺憾的是,中獎(jiǎng)?wù)咦罱K未現(xiàn)身領(lǐng)獎(jiǎng),萬(wàn)元大獎(jiǎng)成為棄獎(jiǎng)。經(jīng)中山市福彩中心查證,這是中國(guó)福彩史上金額第二大的棄獎(jiǎng)。根據(jù)彩票管理?xiàng)l例實(shí)施細(xì)則的有關(guān)規(guī)定,這次的萬(wàn)元棄獎(jiǎng)獎(jiǎng)金將被納入彩票公益金。獲取的數(shù)據(jù)可以保存在本地。 showImg(https://segmentfault.com/img/remote/1460000019703271); 目錄0 引言1 環(huán)境2 需求分析3 代碼實(shí)現(xiàn)4 后...

    yuanxin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<