關于Python的隨機數模塊,你必須要掌握!

所謂七夕

昨天的文章這個七夕節(jié),用Python為女友繪制一張愛心照片墻吧!收獲了最近以來最高的瀏覽量,沒枉費我熬到夜里3點趕出來的熱點文章。有付出就總會有所回報,只是看這天來的早晚而已。七夕一個人看這網易的數據分析直播體驗課程,偶爾刷刷朋友圈,看看各種秀...有人說,經得起寂寞,耐得住孤獨,能安心踏實去做一件事,才有有所建樹。努力吧更為朋友們!

常用模塊

面對現(xiàn)在各種的python3天入門、21天速成,等等的教程與素材,讓很多人對python的基礎知識,掌握的很薄弱。包括我身邊的朋友,已經開始Django、Flask的web開發(fā)了,甚至對文件遍歷還不慎了解。昨天在做照片墻的時候,用到了random模塊,大家可能覺得,這個模塊有啥說的,無非就是隨機數么,但隨機的方式卻有很多,今天就跟大家總結下random這個常用的模塊

random函數總結

random作為python自帶的模塊,無需下載即可直接使用。import random導入該模塊。

random

random.random()會生成一個[0,1)之間的隨機數,如:0.21639729286525555。

randint

random.randint(start,end)隨機生成一個范圍內的整數。
random.randint(1,100) >>> 62

uniform

random.uniform(start,end)隨機生成一個范圍內的浮點數,起始與終止區(qū)間可以為小數
random.uniform(3.5,9.6) >>> 8.233366765359236

可迭代對象

python中萬物皆對象,那么什么屬于可迭代的對象呢?我們來舉幾個例子

list_a = [1, 2, 3]
dict_b = {"a":1,"b":2}
string_c = "abc"
char_d = 'A'
int_e = 123
float_f =10.5
boolen_g = True

對于前兩個,大家肯定知道是可迭代對象,但從第三個開始有些人就迷了...尤其char_d = 'A'這個,很多人都會覺得是不可迭代的,但其實不然,python中沒有所謂的char和string的區(qū)別,只有字符串所以string_c和char_d都是可迭代的對象,如何驗證?

from collections.abc import Iterable

char_c = 'A'
print(isinstance(char_c, Iterable))
>>> True

這里看到一點曾記否,我們引入Iterable使用的是from collections import Iterable什么時候出來了個abc?如果我們還是用老的方式導入,會給出提示:

DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working from collections import Iterable

所以有時候擁抱變化,也很重要!那么為什么突然插出一個Iterable的講解呢?下面幾個方法會用到...

choice & sample

剛才介紹可迭代對象就是為了講解這兩個random中使用最為普遍的函數。choice和sample之所以一起講,是為了將二者對比記憶。
不管是random.choice還是random.sample,他們跟的必須是可迭代的對象。
choice我們可以理解為單選,而sample我們可以理解為自定義多選。舉個栗子:

random.choice('abc')
>>> 'b'
random.choice([1,2,3,4,5])
>>> 2
random.sample('abc',2)
>>> ['b', 'c']
random.sample([1,2,3,4,5],3)
>>> [3, 5, 4]
# 但我們不可以這樣:
random.choice(5)
random.sample(10,1)

choice不容易出錯,但sample大家需要注意:

  1. sample既然是自定義多選,那么我們首先需要定義我們選擇幾個數值
  2. sample在選擇是,自定義的數值,不能大于可迭代對象的最大長度
  3. sample選擇后,返回列表類型,且列表為隨機數。
shuffle

random.shuffle()這里需要注意,他只能針對list類型的數據,進行重新排序,這點一定要牢記,避免報錯

list_a = ['a','b','c','d','e']
random.shuffle(list_a)
print(list_a)
>>> ['b', 'e', 'c', 'a', 'd']
The End

OK,今天的內容就到這里,如果覺得內容對你有所幫助,歡迎點擊文章右下角的“在看”。
期待你關注我的公眾號清風Python,如果覺得不錯,希望能動動手指轉發(fā)給你身邊的朋友們。
希望每周一至五清晨的7點10分,都能讓清風Python的知識文章叫醒大家!謝謝……

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容