欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python標準庫random模塊處理隨機數(shù)

 更新時間:2022年09月28日 11:13:15   作者:小地瓜重新去華容道工作  
這篇文章主要介紹了python標準庫random模塊處理隨機數(shù),random模塊實現(xiàn)了各種分布的偽隨機數(shù)生成器,具體介紹感興趣的小伙伴可以參考一下

前言

random模塊實現(xiàn)了各種分布的偽隨機數(shù)生成器。

偽隨機數(shù):人類使用算法等方式,以一個基準(也被稱為種子,常用的是時間戳)來構造一系列數(shù)字,這些數(shù)字的特性符合人們所理解的隨機數(shù)。
一旦算法和種子都確定,產(chǎn)生的隨機數(shù)序列也是確定的,所以稱為偽隨機數(shù)。

1. 常用函數(shù)

常用函數(shù)說明
random.seed(a)設置初始化隨機種子,可輸出相同隨機數(shù)序列;a取整數(shù)或浮點數(shù),不設置時默認以系統(tǒng)時間為種子
random.random()生成一個0.0到1.0之間的隨機浮點數(shù)
random.uniform(a,b)生成一個[a,b]之間的隨機小數(shù),a,b取整數(shù)或浮點數(shù)
random.randint(a,b)生成一個[a,b]之間的隨機整數(shù)
random.randrange(start,stop[,step])生成一個[start,stop)之間以step為步數(shù)的隨機整數(shù);start,stop,step都是整數(shù),step不設置默認為1
random.getrandbits(k)(seq)生成一個占內(nèi)存k位以內(nèi)的隨機整數(shù);k取長度的整數(shù)值
如果設置k=2,那么可取的數(shù)就在 (0,1,2,3) 之間隨機取
random.choice(seq)從序列類型seq中隨機返回一個元素;seq是序列類型,如:字符串、列表、元組、集合等
random.shuffle(seq)將序列類型中元素隨機排序,返回打亂后的序列,seq被改變(改變原列表);seq是序列類型,如:字符串、列表、元組等
random.sample(pop,k)從pop中選取k個元素,以列表類型返回(不改變原列表);pop是序列類型,k是整數(shù)表示取k個數(shù)

常用函數(shù)使用方法:

import random

print('no seed')
for i in range(5):
    ret = random.randint(1,10)
    print(ret)

print()

print(random.random())
print(random.uniform(1,10))
print(random.randint(0,10))
print(random.randrange(1,10,5))
print(random.getrandbits(2))

print(random.choice([1,3,5,7,9]))
l=[1,2,3,4]
random.shuffle(l)
print(l)

print(random.sample(l,2))

print('*'*40)
print('has seed')
random.seed(1)
for i in range(5):
    ret = random.randint(1,10)
    print(ret)

print(random.random())
print(random.uniform(1,10))
print(random.randint(0,10))
print(random.randrange(1,10,5))
print(random.getrandbits(2))
print(random.choice([1,3,5,7,9]))

l=[1,2,3,4]
random.shuffle(l)
print(l)

print(random.sample(l,2))

顯示結果:

no seed
4
7
5
5
1
()
0.730177834774
4.05987712407
8
6
0
7
[1, 4, 2, 3]
[4, 1]
****************************************
has seed
2
9
8
3
5
0.449491064789
6.8643367545
8
1
0
9
[1, 3, 4, 2]
[4, 1]

2. 不常用函數(shù)

random模塊中不常用的函數(shù)有如下:

函數(shù)名說明
random.getstate()捕獲并返回生成器當前內(nèi)部狀態(tài)的對象,可以把它傳遞給setstate()函數(shù)來把生成器內(nèi)部狀態(tài)恢復到調(diào)用getstate()函數(shù)之前的狀態(tài),相當于備份
random.setstate(state)state應該是getstate()函數(shù)的結果,用來把生成器當前的內(nèi)部狀態(tài)恢復為state
random.betavariate(alpha,beta)Beta分布:參數(shù)的條件是alpha>0和beta > 0,返回值的范圍介于0和1之間
random.expovariate(lambd)指數(shù)分布
random.gammavariate(alpha,beta)Gamma分布:參數(shù)的條件的alpha > 0 & beta < 0
random.gauss(mu,sigma)高斯分布: mu是平均值,sigma是標準差
random.normalvariate(mu,sigma)正態(tài)分布:mu是平均值,sigma是標準差
random.paretovariate(alpha)帕累托分布:alpha是形狀參數(shù)
random.weibullvariate(alpha,beta)威布爾分布:alpha是比例參數(shù),beta是形狀參數(shù)

3. 使用示例

3.1 生成隨機密碼

生成的密碼包含數(shù)字和字母,可以指定密碼的位數(shù)。

# -*- coding: utf-8 -*-
"""
@File   :   隨機生成密碼.py
@E-Mail :   zoya.zh@qq.com
"""
import random
import string

def get_random_passwd(length:int):
    '''
    生成隨機密碼h
    :param length:  密碼的長度
    :return:  生成的隨機密碼
    '''
    num_count = random.randint(1,length-1)   # 密碼中數(shù)字的個數(shù)
    char_count = length - num_count  # 密碼中字母的個數(shù)

    num_list = [random.choice(string.digits) for i in range(num_count)]  # 隨機生成的數(shù)字

    char_list = [random.choice(string.ascii_letters) for i in range(char_count)]  # 隨機生成的字母

    psw = num_list + char_list

    # 隨機排列序列中的字符
    random.shuffle(psw)

    # 把得到的密碼轉成字符串的格式返回
    result = ''.join(psw)

    return result

if __name__ == '__main__':
    psw = get_random_passwd(8)
    print(psw)

測試時每次都會生成不同的密碼

8oG4GW76

261Ro923

到此這篇關于python標準庫random模塊處理隨機數(shù)的文章就介紹到這了,更多相關python random模塊 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python腳本實現(xiàn)數(shù)據(jù)導出excel格式的簡單方法(推薦)

    python腳本實現(xiàn)數(shù)據(jù)導出excel格式的簡單方法(推薦)

    下面小編就為大家?guī)硪黄猵ython腳本實現(xiàn)數(shù)據(jù)導出Excel格式的簡單方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 什么是Python變量作用域

    什么是Python變量作用域

    在本篇文章里小編給大家整理的是關于Python變量作用域的相關知識點內(nèi)容,需要的朋友們可以學習下。
    2020-06-06
  • matlab繪制局部放大圖圖文教程

    matlab繪制局部放大圖圖文教程

    這篇文章主要給大家介紹了關于matlab繪制局部放大圖的相關資料,所謂局部放大即呈現(xiàn)子圖,以顯示局部細節(jié),需要的朋友可以參考下
    2023-07-07
  • python正則表達式re.search()的基本使用教程

    python正則表達式re.search()的基本使用教程

    正則表達式是我們?nèi)粘i_發(fā)中必然會遇到的,下面這篇文章主要介紹了python正則表達式re.search()的基本使用教程,需要的朋友可以參考下
    2021-05-05
  • Python多線程經(jīng)典問題之乘客做公交車算法實例

    Python多線程經(jīng)典問題之乘客做公交車算法實例

    這篇文章主要介紹了Python多線程經(jīng)典問題之乘客做公交車算法,簡單描述了乘客坐公交車問題并結合實例形式分析了Python多線程實現(xiàn)乘客坐公交車算法的相關技巧,需要的朋友可以參考下
    2017-03-03
  • 利用Python編寫簡易的錄制屏幕小工具

    利用Python編寫簡易的錄制屏幕小工具

    這篇文章主要為大家詳細介紹了如何利用Python語言編寫一個簡易的錄制屏幕小工具,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下
    2022-08-08
  • opencv python簡易文檔之圖像處理算法

    opencv python簡易文檔之圖像處理算法

    OpenCV是一個開源庫,包含了許多計算機視覺算法,它在計算機視覺和圖像處理中起著重要作用,用于實時操作,其效率足以滿足工業(yè)上的要求,這篇文章主要給大家介紹了關于opencv python簡易文檔之圖像處理算法的相關資料,需要的朋友可以參考下
    2021-08-08
  • python類中super()和__init__()的區(qū)別

    python類中super()和__init__()的區(qū)別

    這篇文章主要介紹了python類中super()和__init__()的區(qū)別,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • Python功能擴展Xorbits庫編程的無限可能性探索

    Python功能擴展Xorbits庫編程的無限可能性探索

    Xorbits是一個Python庫,旨在擴展Python語言的功能,使開發(fā)者能夠更加輕松地進行創(chuàng)新性編程,該庫提供了各種工具和功能,本文就來帶大家探索python編程的無限可能性
    2024-01-01
  • python3.3實現(xiàn)乘法表示例

    python3.3實現(xiàn)乘法表示例

    這篇文章主要介紹了python3.3實現(xiàn)乘法表示例,需要的朋友可以參考下
    2014-02-02

最新評論