python中的隨機數生成


結論先行

生成隨機數:

# salt = ''.join(random.choices(string.ascii_letters + string.digits, k=3))
salt = ''.join(random.sample(string.ascii_letters + string.digits, 3))
print(salt)

random模塊

python標准庫中的random函數,可以生成隨機浮點數、整數、字符串,甚至幫助你隨機選擇列表序列中的一個元素,打亂一組數據。

random主要函數接受

  • random.random() 用於生成一個隨機浮點數

    >>> import random
    >>> random.random()
    0.025952242994744412
    
  • random.uniform(a,b) 用於生成一個指定范圍的隨機浮點數。若a=b,則生成的浮點數是a

  • >>> random.uniform(2,5)
    2.3194041077057443
    >>> random.uniform(2,2)
    2.0
    
  • random.randint(a,b) 用於生成一個指定范圍內的整數,生成的隨機整數a<=n<=b

  • >>> random.randint(2,3)
    2
    >>> random.randint(2,3)
    3
    >>> random.randint(2,2)
    2
    
  • random.randrange([start],stop[,step]) 從指定范圍,按指定基數遞增的集合中獲取一個隨機數,基數缺省值為1,不包含stop。

  • random.randrange(10) #輸出0~10之間的任意數
    random.randrange(10,100) #輸出為10到100間的任意數
    random.randrange(10,100,4) #輸出為10到100內以4遞增的序列[10,14,18,22...]
    random.choice(range(10,100,4)) #輸出在結果上與上一條等效
    
  • random.shuffle(x[,random]) 用於將一個列表中的元素打亂

  • >>> list=[1,2,3,4,5]
    >>> random.shuffle(list)
    >>> list
    [4, 1, 2, 5, 3]
    >>> random.shuffle(list)
    >>> list
    [2, 4, 3, 1, 5]
    
  • random.choice(sequence) 從序列中獲取一個隨機元素,包括list、tuple、字符串等

  • >>> random.choice(range(10))
    7
    >>> random.choice("hello")
    'e'
    >>> random.choice([1,2,3])
    3
    >>> random.choice((1,2,3))
    1
    
  • random.choices(sequence,k=n) 從指定序列中隨機獲取n個元素作為一個片段返回。該函數還可以設置各個元素的權重,詳見官方文檔。python3才有的函數。

    >>> import random
    >>> random.choices('12345678',k=3)
    ['6', '3', '7']
    
  • random.sample(sequence,k) 從指定序列中隨機獲取k個元素作為一個片段返回,sample函數不會修改原有序列

  • >>> a='1234567890'
    >>> random.sample(a,3)
    ['4', '1', '5']
    >>> a
    '1234567890' # a不變
    >>> random.sample([1,2,3,4,5,6,7,8],3)
    [1, 7, 5]
    >>> random.sample((1,2,3,4,5,6,7,8),3)
    [6, 2, 7]
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM