最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中random模塊常用方法的使用教程

 更新時間:2020年10月04日 10:55:35   作者:Python碎片  
這篇文章主要給大家介紹了關(guān)于Python中random模塊常用方法的使用教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

Python 的random模塊包含許多隨機數(shù)生成器。

random是Python標準庫之一,直接導(dǎo)入即可使用。本文介紹random中常用方法的用法。

一、生成隨機的整數(shù)

# coding=utf-8
import random
 
 
print(random.randint(1, 5))
print(random.randrange(0, 51, 5))

運行結(jié)果:

3
40

randint(start, end)會返回一個start到end之間的整數(shù),這里是左閉右閉區(qū)間。也就是說可能會返回end值,在Python中,這個是一個比較特殊的地方,一般來說都是左閉右開的區(qū)間。

randrange(start, end, step)返回一個range(start, end, step)生成的列表中的隨機一個值。這里是左閉右開區(qū)間,如果上面代碼的51如果換成50,則不可能返回50。

每次運行的結(jié)果是不同的,因為是隨機返回其中一個。

二、生成隨機的小數(shù)

print(random.random())
print(random.uniform(2, 5))

運行結(jié)果:

0.49541524802465897
2.948656863619216

random()返回0到1之間的任意一個浮點數(shù)。

uniform(start, end)返回start到end之間的任意一個浮點數(shù),其實就是將random()的結(jié)果乘(end-start),代碼就是這么實現(xiàn)的。

三、從字符串、列表、元組中隨機返回一個值

choice_str = 'python'
print(random.choice(choice_str))
choice_list = [i for i in range(1, 6)]
print("choice_list: ", choice_list)
print(random.choice(choice_list))
choice_tuple = (10, 20, 30, 40, 50)
print(random.choice(choice_tuple))

運行結(jié)果:

h
choice_list:  [1, 2, 3, 4, 5]
5
20

choice()返回可迭代對象中的一個值??梢允橇斜怼⒃M、字符串,不能是字典和集合。

四、從字符串、列表、元組中隨機返回一次或多次,且設(shè)置權(quán)重

choice_list = [i for i in range(1, 6)]
print("choice_list: ", choice_list)
print(random.choices(choice_list))
choice_tuple = (10, 20, 30, 40, 50)
print(random.choices(choice_tuple, k=2))
choice_str = 'python'
print(random.choices(choice_str, weights=[0.5, 0, 0.5, 0, 0, 0], k=7))
print(random.choices(choice_str, cum_weights=[0, 0.5, 0.5, 1, 1, 1], k=7))

運行結(jié)果:

choice_list:  [1, 2, 3, 4, 5]
[4]
[20, 50]
['t', 'p', 't', 'p', 'p', 't', 't']
['h', 'y', 'h', 'h', 'h', 'h', 'y']

choices(population, weights=None, cum_weights=None, k=1)從可迭代對象中返回一次或多次值,返回結(jié)果是一個列表。

weights是每一個值對應(yīng)的權(quán)重列表,默認是None,所有元素權(quán)重相等。傳入權(quán)重列表時,列表長度必須與可迭代對象的長度相等,值與權(quán)重按索引一一對應(yīng)。傳入的值可以是任何數(shù)字,只要能對比出不同值之間的權(quán)重大小就可以,系統(tǒng)會按權(quán)重大小來計算返回每個值的可能性,如上面的例子中只會返回“python”中的p和t,因為其他字符的權(quán)重為0。

cum_weights是每一個值對應(yīng)的累計權(quán)重列表,默認是None,所有元素權(quán)重相等。傳入權(quán)重列表時,列表長度必須與可迭代對象的長度相等。權(quán)重是累計的,每一個位置的累計權(quán)重是前面所有元素的權(quán)重之和加上當(dāng)前位置元素的權(quán)重,也就是說這個列表后面的值不可能小于前面的值。系統(tǒng)會根據(jù)累計權(quán)重值計算出每個元素的權(quán)重,然后計算返回每個值的可能性,如上面的例子中只會返回“python”中的y和h,因為其他字符的權(quán)重是0。

注意:weights和cum_weights不能同時有值,即使計算結(jié)果一樣。

k值是從可迭代對象中獲取值的次數(shù),每次只取其中的一個,重復(fù)k次,所以,理論上,有可能k次都取到同一個元素。

五、從字符串、列表、元組中隨機獲取一個或多個值

sample_list = [i for i in range(1, 6)]
print("sample_list: ", sample_list)
print(random.sample(sample_list, 1))
sample_tuple = (10, 20, 30, 40, 50)
print(random.sample(sample_tuple, 2))
sample_str = 'python'
print(random.sample(sample_str, 3))

運行結(jié)果:

sample_list:  [1, 2, 3, 4, 5]
[1]
[10, 40]
['p', 'h', 'o']

sample(population, k)從可迭代對象中隨機返回k個元素,返回一個列表。

k表示返回元素的個數(shù),這個參數(shù)沒有默認值,必須傳值。并且,是一次從可迭代對象中返回k個值,不是分k次,每個元素不會重復(fù)被取。此外,k值不可以大于可迭代對象的長度,否則報錯,而上面choices中的k可以無限大,只要需要。使用場景不同,要注意區(qū)別。

六、隨機打亂順序

cards = ['%s-%s' % (a, b) for a in ['Spade', 'Heart', 'Diamond', 'Club'] for b in
   ([str(i) for i in range(3, 11)] + [j for j in 'JQKA2'])] + ['Black joker', 'Red joker']
print("Before: ", cards)
random.shuffle(cards)
print("After: ", cards)

運行結(jié)果:

Before:  ['Spade-3', 'Spade-4', 'Spade-5', 'Spade-6', 'Spade-7', 'Spade-8', 'Spade-9', 'Spade-10', 'Spade-J', 'Spade-Q', 'Spade-K', 'Spade-A', 'Spade-2', 'Heart-3', 'Heart-4', 'Heart-5', 'Heart-6', 'Heart-7', 'Heart-8', 'Heart-9', 'Heart-10', 'Heart-J', 'Heart-Q', 'Heart-K', 'Heart-A', 'Heart-2', 'Diamond-3', 'Diamond-4', 'Diamond-5', 'Diamond-6', 'Diamond-7', 'Diamond-8', 'Diamond-9', 'Diamond-10', 'Diamond-J', 'Diamond-Q', 'Diamond-K', 'Diamond-A', 'Diamond-2', 'Club-3', 'Club-4', 'Club-5', 'Club-6', 'Club-7', 'Club-8', 'Club-9', 'Club-10', 'Club-J', 'Club-Q', 'Club-K', 'Club-A', 'Club-2', 'Black joker', 'Red joker']
After:  ['Spade-3', 'Diamond-J', 'Club-8', 'Club-7', 'Diamond-10', 'Spade-J', 'Heart-J', 'Diamond-A', 'Spade-K', 'Spade-10', 'Spade-8', 'Club-10', 'Club-J', 'Heart-9', 'Diamond-4', 'Diamond-5', 'Red joker', 'Spade-5', 'Club-4', 'Club-Q', 'Heart-7', 'Spade-Q', 'Club-A', 'Spade-6', 'Diamond-6', 'Black joker', 'Spade-7', 'Heart-Q', 'Club-9', 'Club-3', 'Heart-K', 'Diamond-Q', 'Diamond-K', 'Spade-2', 'Heart-5', 'Heart-A', 'Heart-4', 'Heart-3', 'Diamond-7', 'Club-K', 'Diamond-9', 'Spade-4', 'Heart-2', 'Spade-A', 'Club-6', 'Club-2', 'Heart-8', 'Diamond-2', 'Heart-10', 'Heart-6', 'Club-5', 'Spade-9', 'Diamond-8', 'Diamond-3']

shuffle()將可迭代對象的順序隨機打亂,上面例子中我們模擬了一副撲克牌,然后用shuffle()完成“洗牌”。

注意:shuffle()沒有返回值,是直接對可迭代對象進行修改。

random除了上面的方法外,還有一些按數(shù)學(xué)分布隨機生成數(shù)據(jù)的方法,如正太分布,指數(shù)分布等,這里就不繼續(xù)舉例了,其實random源碼也不是很多,里面的方法數(shù)量是人工可數(shù)的,需要的話您可以在Pycharm中按住Ctrl點進去看看。

總結(jié)

到此這篇關(guān)于Python中random模塊常用方法的使用教程的文章就介紹到這了,更多相關(guān)Python random模塊常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實現(xiàn)合并兩個有序列表的示例代碼

    python實現(xiàn)合并兩個有序列表的示例代碼

    這篇文章主要介紹了python實現(xiàn)合并兩個有序列表的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python 中random 庫的詳細使用

    Python 中random 庫的詳細使用

    random庫是使用隨機數(shù)的Python標準庫,python中用于生成偽隨機數(shù)的函數(shù)庫是random,今天通過本文給大家分享Python 中random 庫的詳細使用,感興趣的朋友一起看看吧
    2021-06-06
  • 聊聊python中not 與 is None的區(qū)別

    聊聊python中not 與 is None的區(qū)別

    這篇文章主要介紹了在python中not 與 is None的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 用python編寫第一個IDA插件的實例

    用python編寫第一個IDA插件的實例

    今天小編就為大家分享一篇用python編寫第一個IDA插件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python文件比較示例分享

    python文件比較示例分享

    本文介紹了Python比較兩個文本文件內(nèi)容,如果不同, 給出第一個不同處的行號和列號,大家參考使用吧
    2014-01-01
  • ?python用matplotlib可視化繪圖詳解

    ?python用matplotlib可視化繪圖詳解

    這篇文章主要介紹了?python用matplotlib可視化繪圖詳解,Matplotlib?是一個python的?2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環(huán)境生成出版質(zhì)量級別的圖形,下面我們就來看看關(guān)于matplotlib可視化繪圖的詳細過程吧
    2022-01-01
  • 簡單了解Django ContentType內(nèi)置組件

    簡單了解Django ContentType內(nèi)置組件

    這篇文章主要介紹了簡單了解Django ContentType內(nèi)置組件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python爬蟲入門教程--優(yōu)雅的HTTP庫requests(二)

    python爬蟲入門教程--優(yōu)雅的HTTP庫requests(二)

    requests 實現(xiàn)了 HTTP 協(xié)議中絕大部分功能,它提供的功能包括 Keep-Alive、連接池、Cookie持久化、內(nèi)容自動解壓、HTTP代理、SSL認證等很多特性,下面這篇文章主要給大家介紹了python爬蟲入門中關(guān)于優(yōu)雅的HTTP庫requests的相關(guān)資料,需要的朋友可以參考下。
    2017-05-05
  • Python查找大文件的實用腳本分享

    Python查找大文件的實用腳本分享

    這篇文章主要為大家分享一個利用Python查找大文件的實用腳本,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • Django框架下靜態(tài)模板的繼承操作示例

    Django框架下靜態(tài)模板的繼承操作示例

    這篇文章主要介紹了Django框架下靜態(tài)模板的繼承操作,結(jié)合實例形式分析了Django框架模板繼承操作的相關(guān)原理與操作注意事項,需要的朋友可以參考下
    2019-11-11

最新評論

句容市| 东兰县| 长沙市| 安宁市| 贵德县| 河曲县| 高淳县| 三门峡市| 秦安县| 新郑市| 安西县| 广河县| 唐山市| 合阳县| 瓮安县| 冷水江市| 平度市| 永修县| 体育| 吴忠市| 白河县| 册亨县| 金山区| 当雄县| 舟山市| 玛沁县| 泉州市| 娱乐| 玉树县| 柘荣县| 新兴县| 蓬莱市| 松潘县| 新竹县| 丹阳市| 郯城县| 新乐市| 虹口区| 鄱阳县| 临颍县| 平原县|