所謂七夕
昨天的文章這個七夕節(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大家需要注意:
- sample既然是自定義多選,那么我們首先需要定義我們選擇幾個數值
- sample在選擇是,自定義的數值,不能大于可迭代對象的最大長度
- 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的知識文章叫醒大家!謝謝……